Manejo de Eventos para Controles creados en Ejecución

09/05/2006 - 20:46 por Adal | Informe spam
Creo un combobox, pero como puedo no he podido acceder al evento SelectedIndex
Alguna idea de como acceder a los eventos cuando se crean controles en
tiempo de ejecución??

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua [mvp vb]
10/05/2006 - 00:48 | Informe spam
"Adal" escribió en el mensaje
news:
Creo un combobox, pero como puedo no he podido acceder al evento
SelectedIndex
Alguna idea de como acceder a los eventos cuando se crean controles en
tiempo de ejecución??




Hola, Adal:

La rutina para procesar los eventos de los nuevos controles debe preexistir.

Es cualquier sub, con la firma Sub LaRutina(Sender As Object, e As
EventArgs). De hecho puede ser un poco mas complejo: diferentes eventos
pueden utilizar diferentes tipos de argumentos en <e>. System.EventArgs es
una clase base, de la cual se derivan otras mas especificas, como
KeyPressEventArgs, o MouseEventArgs. En el caso particular del evento
SelectedIndexChange, <e> es del tipo EventArgs.

Luego usas AddHandler para asociar el evento que te interese del nuevo
control con la rutina:

AddHandler NuevoControl.NombreEvento, AddressOf LaRutina

Salud!
Respuesta Responder a este mensaje
#2 Lucas
10/05/2006 - 00:57 | Informe spam
Tienes que hacer algo como lo siguiente:

'Declaramos el combo con "WithEvents" para que soporte eventos
Private WithEvents combo As ComboBox

'Supongo que habrás hecho algo así:
Me.combo = New ComboBox
Me.combo.Location = New System.Drawing.Point(X, Y)
Me.combo.Name = "cboNombre"
Me.combo.Size = New System.Drawing.Size(ancho, alto)
Me.combo.BringToFront()
formulario.Controls.Add(Me.combo)

'Ahora, le asociamos el evento "SelectedIndexChanged"
Private Sub combo_SelectedIndexChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles combo.SelectedIndexChanged
'Aquí va el código que quieres
End Sub

El nombre del procedimiento "combo_SelectedIndexChanged" puedes cambiarlo,
solo lo uso para usar el formato que usa el Visual Basic de forma
predeterminada.

Espero haberte ayudado. Nos vemos.
Respuesta Responder a este mensaje
#3 Lucas
10/05/2006 - 01:07 | Informe spam
Para que no te compliques cuando no sepas que argumentos recibe un
determinado evento (eso de los "System.EventArgs" que te menciona el maestro
Leonardo Azpurua), pues creas un control en tiempo de diseño, claro, del tipo
del cual quieres conocer los argumentos que recibe, y le pones el nombre del
control que vas a crear en tiempo de ejecución, lo del nombre no es
obligatorio, pero si lo haces así, luego solo tienes que copiar y pegar el
código :-). Y una vez creado el control, simplemente accedes al evento que te
interesa.

Espero haberte ayudado. Nos vemos.
Respuesta Responder a este mensaje
#4 Adal
10/05/2006 - 02:02 | Informe spam
Gracias por todo... lo voy a implementar, tenia la idea de que era algo
parecido, no obstante, no podia asociarlo correctamente.

"Lucas" wrote:

Para que no te compliques cuando no sepas que argumentos recibe un
determinado evento (eso de los "System.EventArgs" que te menciona el maestro
Leonardo Azpurua), pues creas un control en tiempo de diseño, claro, del tipo
del cual quieres conocer los argumentos que recibe, y le pones el nombre del
control que vas a crear en tiempo de ejecución, lo del nombre no es
obligatorio, pero si lo haces así, luego solo tienes que copiar y pegar el
código :-). Y una vez creado el control, simplemente accedes al evento que te
interesa.

Espero haberte ayudado. Nos vemos.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida