Foros del Web » Programación para mayores de 30 ;) » .NET »

cast en vb

Estas en el tema de cast en vb en el foro de .NET en Foros del Web. yo en c# hago los casting así: Tengo una serie de botones dentro de un panel, y si quiero acceder a sus campos llamo al ...
  #1 (permalink)  
Antiguo 14/06/2011, 15:45
 
Fecha de Ingreso: enero-2011
Mensajes: 105
Antigüedad: 13 años, 2 meses
Puntos: 10
cast en vb

yo en c# hago los casting así:

Tengo una serie de botones dentro de un panel, y si quiero acceder a sus campos llamo al control correspondiente del panel y hago un casting para que que el compilador sepa que es un botón el control al que me estoy refiriendo

Código:
((Button)Panel1.Controls[0]).BackColor = Color.LightGreen;

Bien, pues quiero hacer esto mismito pero en Visual Basic y no se hacerlo, ¿Me ayudáis?
  #2 (permalink)  
Antiguo 14/06/2011, 15:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: cast en vb

En .Net todo Control tiene la propiedad .BackColor porque la hereda de la clase Control. Eso significa que no requiere "casteo".
Lo que sí requiere es que exista el control del que quieres modificar el color de fondo dentro de la colección .Controls().
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 14/06/2011, 16:03
 
Fecha de Ingreso: enero-2011
Mensajes: 105
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: cast en vb

Bueno... lo disfrace un poco asi porque me parecio mas sencillo de entender. En realidad lo que tengo es esto:

Código:
if (((CtrlContacto)F.pnlContactos.Controls[i]).sel == true)
{
//Guardamos los valores
                            ((CtrlContacto)F.pnlContactos.Controls[i]).StrNombre = txtNombre.Text;
                            ((CtrlContacto)F.pnlContactos.Controls[i]).StrApellidos = txtApellidos.Text;
                            ((CtrlContacto)F.pnlContactos.Controls[i]).StrTelefono = txtTelefono.Text;
                            ((CtrlContacto)F.pnlContactos.Controls[i]).StrDireccion = txtDireccion.Text;
                            ((CtrlContacto)F.pnlContactos.Controls[i]).StrCorreo = txtCorreo.Text;
                            ((CtrlContacto)F.pnlContactos.Controls[i]).StrPoblacion = txtPoblacion.Text;
                            ((CtrlContacto)F.pnlContactos.Controls[i]).StrImagenRuta = pic1.ImageLocation;
                            ((CtrlContacto)F.pnlContactos.Controls[i]).StrFecha = DateFecha.Text;

                         
                }
tengo un control de usuario (CtrlContacto) que tiene sus propios campos, necesito hacer el cast, esto es copia de un proyecto mío hecho en c#, ahora quiero hacer lo mismo pero en vb y no me funciona, muchas gracias por la ayuda
  #4 (permalink)  
Antiguo 14/06/2011, 16:07
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: cast en vb

Cita:
Iniciado por gnzsoloyo
En .Net todo Control tiene la propiedad .BackColor porque la hereda de la clase Control



Cita:
Iniciado por elpetakas
pues quiero hacer esto mismito pero en Visual Basic y no se hacerlo, ¿Me ayudáis?
Código vb:
Ver original
  1. DirectCast(Panel1.Controls(0), Button).BackColor = Color.LightGreen

Nota.- Siempre y cuando sepas que la posicion 0 es el boton, porque si no sabes la posición puedes hacer un findcontrol

Por ejemplo:

Código vb:
Ver original
  1. DirectCast(Panel1.Controls.Find("Button1", True)(0), Button).BackColor = Color.LightGreen
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 14/06/2011, 16:13
 
Fecha de Ingreso: enero-2011
Mensajes: 105
Antigüedad: 13 años, 2 meses
Puntos: 10
Respuesta: cast en vb

Muchas gracias, os debo una ;)

Etiquetas: cast, vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:52.