Acceder a coleccion de botones creados dinamicamente

30/04/2010 - 08:53 por ojos | Informe spam
He creado una coleccion de botones dinamicamente:

While Reader.Read = True
Dim btnNuevo As New System.Windows.Forms.Button
btnNuevo.Name = "btnId" + CStr(Reader("Id"))
btnNuevo.Text = Reader("Titular")
btnNuevo.Location = New Point(x, 21)
Me.Panel2.Controls.Add(btnNuevo)
x += 80
End While

Ahora necesito acceder al metodo onclick de los botones y no se como hacerlo

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
30/04/2010 - 09:42 | Informe spam
"ojos" wrote in message
news:
He creado una coleccion de botones dinamicamente:

While Reader.Read = True
Dim btnNuevo As New System.Windows.Forms.Button
btnNuevo.Name = "btnId" + CStr(Reader("Id"))
btnNuevo.Text = Reader("Titular")
btnNuevo.Location = New Point(x, 21)
Me.Panel2.Controls.Add(btnNuevo)
x += 80
End While

Ahora necesito acceder al metodo onclick de los botones y no se como
hacerlo



El _método_ OnClick es "Protected" y por lo tanto no puedes acceder a él
nada más que heredando de la clase Button. Me imagino que cuando dices
"aceder al metodo onclick" te refieres a que quieres añadir un manejador
para el evento Click. Eso lo puedes conseguir con un AddHandler dentro del
propio bucle:

While Reader.Read = True
Dim btnNuevo As New System.Windows.Forms.Button
btnNuevo.Name = "btnId" + CStr(Reader("Id"))
btnNuevo.Text = Reader("Titular")
btnNuevo.Location = New Point(x, 21)
AddHandler btnNuevo.Click, AddressOf btnNuevo_Click
Me.Panel2.Controls.Add(btnNuevo)
x += 80
End While

Private Sub btnNuevo_Click(sender As Object, e As EventArgs)
... 'Tratar aqui el evento
... 'Nota: "sender" te dice cuál de los botones fue pulsado
End Sub
Respuesta Responder a este mensaje
#2 lucky
30/04/2010 - 09:53 | Informe spam
On 30 abr, 08:53, ojos wrote:
He creado una coleccion de botones dinamicamente:

      While Reader.Read = True
                Dim btnNuevo As New System.Windows.Forms.Button
                btnNuevo.Name = "btnId" + CStr(Reader("Id"))
                btnNuevo.Text = Reader("Titular")
                btnNuevo.Location = New Point(x, 21)
                Me.Panel2.Controls.Add(btnNuevo)
                x += 80
            End While

Ahora necesito acceder al metodo onclick de los botones y no se como hacerlo



Hola:
Prueba esto

Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim x As Integer = 10
For liCiclo As Integer = 1 To 8
Dim btnNuevo As New System.Windows.Forms.Button
btnNuevo.Name = "btnId" & CStr(liCiclo)
btnNuevo.Text = "Boton " & CStr(liCiclo)
btnNuevo.Location = New Point(x, 21)
AddHandler btnNuevo.Click, AddressOf lP_BotonClick
Me.Controls.Add(btnNuevo)
x += 80
Next
End Sub

Private Sub lP_BotonClick(ByVal sender As Object, ByVal e As
EventArgs)
Dim Boton As Button = CType(sender, Button)
MessageBox.Show("Se ha pulsado el boton: " & Boton.Name,
"BotonClick", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub

Espero que te sirva
Un saludo desde Bilbo
Carlos
Respuesta Responder a este mensaje
#3 ojos
30/04/2010 - 10:04 | Informe spam
ya lo tengo solo tenia que añadir:

AddHandler btnNuevo.Click, AddressOf btnAddHandler


Public Sub btnAddHandler(ByVal sender As System.Object, ByVal e As
System.EventArgs)

End Sub



"ojos" wrote:

He creado una coleccion de botones dinamicamente:

While Reader.Read = True
Dim btnNuevo As New System.Windows.Forms.Button
btnNuevo.Name = "btnId" + CStr(Reader("Id"))
btnNuevo.Text = Reader("Titular")
btnNuevo.Location = New Point(x, 21)
Me.Panel2.Controls.Add(btnNuevo)
x += 80
End While

Ahora necesito acceder al metodo onclick de los botones y no se como hacerlo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida