Buenas noches.
He creado un formulario donde incluyo un FlowLayoutPanel en cuyo interior creo dinamicamente diez botones mediante un for next. En el evento de pulsación de cualquier botón (evento común a todos ellos), llamo a un procedimiento que muestra la propiedad Text
del botón pulsado.
El problema es ¿por qué se ejecuta dos veces el evento click del ultimo botón?
A continuación les muestro el código:
Public Class Form1
Private WithEvents boton As Button
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Bucle que genera los 10 botones
For n As Integer = 0 To 9
Me.boton = New Button With {
.Size = New System.Drawing.Size(100, 50),
.Name = "btn" & n.ToString,
.Text = CStr("Botón " & n)
}
' Asignación del procedimieto al evento click
AddHandler boton.Click, AddressOf Boton_click
' Se añade el nuevo botón al Panel
Me.FlowLayoutPanel1.Controls.Add(Me.boton)
Next
End Sub
Private Sub Boton_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles boton.Click
Me.MuestraBotonPulsado(CType(sender, Button).Text)
End Sub
Private Sub MuestraBotonPulsado(nombreBoton As String)
MsgBox(nombreBoton)
End Sub
End Class
Gracias y un saludo a todos