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

Controlar eventos de controles creados al vuelo

Estas en el tema de Controlar eventos de controles creados al vuelo en el foro de .NET en Foros del Web. Hola de nuevo. Ya se que mis preguntas suelen ser complicadas, pero haber si alguoen responde a ésta. Estoy creando unos botones, pictureboxes, etc desde ...
  #1 (permalink)  
Antiguo 07/12/2009, 04:23
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 16 años
Puntos: 0
Pregunta Controlar eventos de controles creados al vuelo

Hola de nuevo.

Ya se que mis preguntas suelen ser complicadas, pero haber si alguoen responde a ésta.

Estoy creando unos botones, pictureboxes, etc desde código ya que según una tabla, tengro que crear tantos botones como registros devuelva una query.

Los creo sin ningún problema, ahora bien. ¿Como puedo controlar los eventos de esos botones? que claro está no aparecen en la lista de objetos porque se crean al vuelo.

Gracias por adelantado.

Krato
  #2 (permalink)  
Antiguo 07/12/2009, 04:50
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 16 años
Puntos: 0
Respuesta: Controlar eventos de controles creados al vuelo

Bueno, parece mentira, pero justo ahora que acabo de prguntar, encuentro la respuesta, mmmm

Bueno, la respuesta es simple.

Hay que añadir un AddHandler para agregarle una accion al objeto.

Pongo un ejemplo:

Código vb.net:
Ver original
  1. Private Sub Muestras_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  2.         For i = 1 To Muestras
  3.             item = New Button
  4.             With item
  5.                 .Text = "Prueba " & i
  6.                 .Dock = DockStyle.Top
  7.             End With
  8.             AddHandler item.Click, AddressOf item_Click 'Le decimos que en el evento click del item vaya al sub item_Click :P
  9.             item.Top = Top
  10.             PanelMuestras.Controls.Add(item)
  11.             Top = Top + item.Height + 1
  12.         Next
  13.     End Sub
  14.  
  15. Private Sub item_Click(ByVal sender As Object, ByVal e As System.EventArgs)
  16.         Dim clic As Button
  17.         clic = sender 'Para acceder a los atributos del sender
  18.  
  19.  
  20.         MsgBox(clic.Text) 'Mostrara el texto del botón según el botón que hayas pulsado
  21.  
  22.         'Y ya está :D
  23.     End Sub

Espero que le sirva a alguien
  #3 (permalink)  
Antiguo 07/12/2009, 05:25
Avatar de Valery-Net  
Fecha de Ingreso: agosto-2008
Mensajes: 694
Antigüedad: 15 años, 8 meses
Puntos: 12
Respuesta: Controlar eventos de controles creados al vuelo

Veo que encontraste la respuesta, felicitaciones, así es como se aprende.
  #4 (permalink)  
Antiguo 07/12/2009, 06:18
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 16 años
Puntos: 0
Respuesta: Controlar eventos de controles creados al vuelo

Si, lo he poestado por si alguien lo necesita. Es una solución fácil, pero a la vez efectiva.

Además no suelo postear hasta que antes no he mirado bien. Por ejemplo, aún nadie me ha respondido a éste post: http://www.forosdelweb.com/f79/dll-c...lucion-758517/ así que, por lo que veo, no son preguntas tan sencillas.
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 21:30.