Visual Basic.NET - Como detectar qué botón ha sido pulsado

 
Vista:
sin imagen de perfil

Como detectar qué botón ha sido pulsado

Publicado por Vicente (1 intervención) el 05/02/2019 15:59:57
Hola:


Me gustaría saber cómo detecto qué botón ha sido pulsado en un formulario que tiene 50 botones numerados del 1 al 50, Es un simulador de la primitiva, dónde el programa genera combinaciones y el usuario elige la suya para ver cuántos sorteos harían falta para acertar.


Se trata de no tener que escribir el código del evento buttonX_click 50 veces para recuperar del boton pulsado su propiedad text y dejarlo deshabilitado.


Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2
Ha disminuido su posición en 253 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como detectar qué botón ha sido pulsado

Publicado por Horroeoso (52 intervenciones) el 05/02/2019 18:53:12
Hola,
Supongamos que los botones se llaman Boton1, Boton2, Boton3, .... Boton49, Boton50

el codigo sería asi:
1
2
3
4
Private Sub Boton_Click(sender As Object, e As EventArgs) Handles Boton1.Click, Boton2.Click, Boton3.Click, Boton4.Click, Boton5.Click, Boton6.Click, Boton7.Click, Boton8.Click, Boton9.Click, Boton10.Click ..... Boton49.Click, Boton50.Click
    Dim Boton As Button = CType(sender, Button)
    MsgBox(Boton.Text)
End Sub

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 2.796
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como detectar qué botón ha sido pulsado

Publicado por Phil Rob (728 intervenciones) el 06/02/2019 10:34:44
Esta es una muy buena solución !
Pero Vicente no parecía querer escribir el 50 BotonX ...
Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2
Ha disminuido su posición en 253 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como detectar qué botón ha sido pulsado

Publicado por Horroroso (52 intervenciones) el 06/02/2019 15:52:11
Hola, buen dia

Creo que si es lo que necesitaba, pues lo que no quiere es copiar y pegar el evento click tantas veces.

Sin embargo, se puede hacer de otra froma:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
    For Each Control In Me.Controls
        If TypeOf Control Is Button Then
            Dim Btn As Button = CType(Control, Button)
            If Btn.Name.StartsWith("Boton") Then
                AddHandler Btn.Click, AddressOf Me.Boton_Click
            End If
        End If
    Next
End Sub
 
Private Sub Boton_Click(sender As Object, e As EventArgs)
    Dim Boton As Button = CType(sender, Button)
    MsgBox(Boton.Text)
End Sub

Asi, solo hay que agregar los botones y ponerles nombre inicial "Boton" es decir, puede ser Boton1, Boton2, etc. y automaticamente se va a agregar el evento click al cargar el formulario.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Phil Rob
Val: 2.796
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como detectar qué botón ha sido pulsado

Publicado por Phil Rob (728 intervenciones) el 06/02/2019 17:32:16
Impresionante y rápido !
Esto responde exactamente a la pregunta de Vicente.

Tomo nota de la solución para mí también ...

Saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar