Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Zeroql en 13 Marzo 2010, 21:00 pm



Título: Problema con eventos al crear controles por codigo
Publicado por: Zeroql en 13 Marzo 2010, 21:00 pm
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
  1. public sub newControl(nomctrl as string)
  2.   dim control as panel= new panel
  3.   panel.name=nomctrl
  4.   panel.left=0
  5.   panel.text=nomctrl
  6.  me.control.add(panel)
  7.  

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.


Título: Re: Problema con eventos al crear controles por codigo
Publicado por: raul338 en 13 Marzo 2010, 21:53 pm
Código
  1. Dim Contador As integer
  2. Dim bcolor As New Random()
  3.  
  4. Public Sub newControl(ByVal nomctrl As String)
  5.   Dim pan As Panel= new Panel
  6.   pan.name=nomctrl
  7.   pan.left= Contador * 60 ' Para que no se pongan uno encima de otro
  8.   Contador += 1
  9.   pan.BackColor = Color.FromArgb(bcolor.Next(0, Int32.MaxValue)) ' Color Aleatorio para diferenciarlo
  10.   pan.text=nomctrl
  11.   Me.control.add(pan)
  12.  
  13.  ' Esta linea es la que agrega el evento, debes tomar en cuenta que hay eventos especiales
  14.  ' ejemplo: OnPaint tiene como clase PaintEventHandler, eso debes averiguarlo por ti mismo ;-)
  15.   AddHandler pan.Click, New EventHandler(AddressOf panel_Click)
  16. End Sub
  17.  
  18. '' Form_Load
  19. newControl("panel1")
  20. newControl("panel2")
  21. ' ...........
  22.  
  23. Public Sub panel_Click(sender as object, e as EventArgs)
  24.    Dim p as panel = Ctype(sender, TypeOf(panel))
  25.    Select Case p.Name
  26.          Case "panel1": MsgBox("Hiciste click en el panel 1")
  27.          Case "panel2": MsgBox("Hiciste click en el panel 2")
  28.     End Select
  29. End Sub
  30.  

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


Título: Re: Problema con eventos al crear controles por codigo
Publicado por: Zeroql en 14 Marzo 2010, 20:20 pm
Muchas gracias por el code es de mucha ayuda...
gracias....