eventos

28/11/2005 - 00:32 por Imac_Man | Informe spam
saludos amigos

estoy creando tres controles en tiempo de ejecucion y los agrego a un
formulario y en el momento de crearlos les creo un evento con la siguiente
linea

addhandler MiControl.GotFocus, addressof Rutina

cada control junto con su evento los voy creando dentro de un ciclo y a cada
control le doy su nombre mas un numero para que no sean iguales, el caso es
que todo funciona bien pero pareciera que los eventos de los primeros
controles sonsobreescritos por el que le sigue y asi sucesivamente quedando
al final el evento del ultimo control que se creo...como puedo evitar
esto..la idea es que cada control tenga su evento y no lo pierda, muchas
gracias de antemano por su ayuda.

Preguntas similare

Leer las respuestas

#1 A.Poblacion
28/11/2005 - 07:53 | Informe spam
"Imac_Man" wrote in message
news:%
estoy creando tres controles en tiempo de ejecucion y los agrego a un
formulario y en el momento de crearlos les creo un evento con la siguiente
linea

addhandler MiControl.GotFocus, addressof Rutina

cada control junto con su evento los voy creando dentro de un ciclo y a


cada
control le doy su nombre mas un numero para que no sean iguales, el caso


es
que todo funciona bien pero pareciera que los eventos de los primeros
controles sonsobreescritos por el que le sigue y asi sucesivamente


quedando
al final el evento del ultimo control que se creo...como puedo evitar
esto..la idea es que cada control tenga su evento y no lo pierda, muchas
gracias de antemano por su ayuda.



Si los creas en un bucle y a todos les asignas la misma Rutina, no es que
se sobreescriban los eventos, sino que todos los controles quedan conectados
con la misma Rutina. Cada control tiene su evento y no lo pierde, lo que
pasa es que todos los eventos ejecutan la misma rutina. Dentro de la rutina
puedes usar el primer argumento ("sender") para saber cuál es el control que
la disparó.
Respuesta Responder a este mensaje
#2 Imac_man
28/11/2005 - 15:23 | Informe spam
no comprendo como puede ayudarme el sender podrias ayudarme con un ejemplo,
gracias.

"A.Poblacion" escribió en
el mensaje news:uLmr%23h%
"Imac_Man" wrote in message
news:%
estoy creando tres controles en tiempo de ejecucion y los agrego a un
formulario y en el momento de crearlos les creo un evento con la
siguiente
linea

addhandler MiControl.GotFocus, addressof Rutina

cada control junto con su evento los voy creando dentro de un ciclo y a


cada
control le doy su nombre mas un numero para que no sean iguales, el caso


es
que todo funciona bien pero pareciera que los eventos de los primeros
controles sonsobreescritos por el que le sigue y asi sucesivamente


quedando
al final el evento del ultimo control que se creo...como puedo evitar
esto..la idea es que cada control tenga su evento y no lo pierda, muchas
gracias de antemano por su ayuda.



Si los creas en un bucle y a todos les asignas la misma Rutina, no es
que
se sobreescriban los eventos, sino que todos los controles quedan
conectados
con la misma Rutina. Cada control tiene su evento y no lo pierde, lo que
pasa es que todos los eventos ejecutan la misma rutina. Dentro de la
rutina
puedes usar el primer argumento ("sender") para saber cuál es el control
que
la disparó.


Respuesta Responder a este mensaje
#3 A.Poblacion
28/11/2005 - 23:17 | Informe spam
"Imac_man" wrote in message
news:
no comprendo como puede ayudarme el sender podrias ayudarme con un


ejemplo,

A ver, aqui va un ejemplo.
Supongamos que esta es la rutina en la que construyes tus objetos:

For I=1 to 5
Dim b as New Button()
b.Text = "Boton " & I
b.Name = "btn" & I
b.Location = ...
AddHandler b.Click, AddressOf EventoClick
Me.Controls.Add(b)
Next I

Y la rutina que trata los eventos es algo asi:

Sub EventoClick(sender as Object, e as EventArgs)
Dim b as Button = CType(sender, Button)
MessageBox.Show("Click en " & b.Text)
End Sub
Respuesta Responder a este mensaje
#4 Imac_man
28/11/2005 - 23:35 | Informe spam
Ahora todo me funciona, muchas gracias amigo.

"A.Poblacion" escribió en
el mensaje news:
"Imac_man" wrote in message
news:
no comprendo como puede ayudarme el sender podrias ayudarme con un


ejemplo,

A ver, aqui va un ejemplo.
Supongamos que esta es la rutina en la que construyes tus objetos:

For I=1 to 5
Dim b as New Button()
b.Text = "Boton " & I
b.Name = "btn" & I
b.Location = ...
AddHandler b.Click, AddressOf EventoClick
Me.Controls.Add(b)
Next I

Y la rutina que trata los eventos es algo asi:

Sub EventoClick(sender as Object, e as EventArgs)
Dim b as Button = CType(sender, Button)
MessageBox.Show("Click en " & b.Text)
End Sub


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida