Problema con eventos al crear controles por codigo

Iniciado por Zeroql, 13 Marzo 2010, 21:00 PM

0 Miembros y 1 Visitante están viendo este tema.

Zeroql

Buenas

Bueno, resulta que cuando NO tengo ni la menor idea como crearle un evento a un control creado por code...
me explico mejor, tengo esto:

Código (vbnet) [Seleccionar]

public sub newControl(nomctrl as string)
   dim control as panel= new panel
   panel.name=nomctrl
   panel.left=0
   panel.text=nomctrl
  me.control.add(panel)


bueno algo asi tengo para crear con una funcion varios controles en tiempo de ejecucion, per lo que no no se es como crearle un evento como:

control_click(byval sender .... bla bla)

si alguien sabe como hacerle eventos a controles hechos en por code le agrezco el aporte... gracias.
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#


raul338

#1
Código (vbnet) [Seleccionar]

Dim Contador As integer
Dim bcolor As New Random()

Public Sub newControl(ByVal nomctrl As String)
  Dim pan As Panel= new Panel
  pan.name=nomctrl
  pan.left= Contador * 60 ' Para que no se pongan uno encima de otro
  Contador += 1
  pan.BackColor = Color.FromArgb(bcolor.Next(0, Int32.MaxValue)) ' Color Aleatorio para diferenciarlo
  pan.text=nomctrl
  Me.control.add(pan)

  ' Esta linea es la que agrega el evento, debes tomar en cuenta que hay eventos especiales
  ' ejemplo: OnPaint tiene como clase PaintEventHandler, eso debes averiguarlo por ti mismo ;-)
  AddHandler pan.Click, New EventHandler(AddressOf panel_Click)
End Sub

'' Form_Load
newControl("panel1")
newControl("panel2")
' ...........

Public Sub panel_Click(sender as object, e as EventArgs)
   Dim p as panel = Ctype(sender, TypeOf(panel))
   Select Case p.Name
         Case "panel1": MsgBox("Hiciste click en el panel 1")
         Case "panel2": MsgBox("Hiciste click en el panel 2")
    End Select
End Sub


Hay tenes como agregarlo, y si agregas mas de uno por el mismo codigo, en el "panel_Click" tenes como identificarlos

Zeroql

Muchas gracias por el code es de mucha ayuda...
gracias....
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#