IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

quel bouton a ete clicquer


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2020
    Messages : 32
    Points : 18
    Points
    18
    Par défaut quel bouton a ete clicquer
    bonjour
    jai un form avec 50 boutons, je voudrait recuperer le text du bouton clicquer
    pour le moment j’ai fait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Buttons_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click
            MsgBox("Clic sur le bouton " & sender.text, MsgBoxStyle.OkOnly)
        End Sub
    peut on abréger ou faire autrement afin de ne pas copier Button1.Click, Button2.Click etc..

    merci

  2. #2
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour,

    Tu peux créer une seule procédure pour répondre aux clics de chaque bouton en lui attribuant Handler du Click pour chaque bouton, à l'aide d'une boucle.

    Dans l'exemple suivant, une procédure événementielle (sans Handles) Bouton_Click est écrite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Bouton_Click(ByVal sender As Object, ByVal e As EventArgs)
        MessageBox.Show(sender.Text) ' pour test
    End Sub
    L'évènement Click de n'importe quel bouton dont le nom commence par Button (ce choix est juste pour l'exemple, il n'est pas nécessaire si TOUS les boutons du Form sont concernés, et il est à modifier si les boutons sont nommés autrement) reçoit une réponse de cette procédure. Pour cela, il faut attribuer le Handler à chaque bouton.
    Le code suivant est programmé dans le Form_Load :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Form1_Load(ByVal sender As Object, ByVal 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("Button") Then   ' Si sélection des boutons sur base du début de leurs noms
                    AddHandler Btn.Click, AddressOf Me.Bouton_Click
                End If
            End If
        Next
    End Sub
    Ces codes devraient répondre à ta demande ...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2020
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    bonjour et merci d'avance

    j'ai essaye d integrer le code mais erreur
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Public Class EASTPAGE
        Dim R As New FormTools.ResizeControls()
     
        Private Sub EASTPAGE_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            R.Container = Me
            Me.WindowState = FormWindowState.Maximized
            Me.FormBorderStyle = FormBorderStyle.None
     
            If TypeOf Control Is Button Then
                Dim Btn As Button = CType(Control, Button)
                If Btn.Name.StartsWith("Button") Then   ' Si sélection des boutons sur base du début de leurs noms
                    AddHandler Btn.Click, AddressOf Me.Bouton_Click
                End If
            End If
            Next
     
        End Sub
     
        Private Sub EASTPAGE_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
            R.ResizeControls()
        End Sub
     
        Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
            Me.Close()
        End Sub
     
        Private Sub PictureBox2_Click(sender As Object, e As EventArgs) Handles PictureBox2.Click
            Me.Close()
            FormMain.Show()
        End Sub
        Private Sub Bouton_Click(ByVal sender As Object, ByVal e As EventArgs)
            MessageBox.Show(sender.Text) ' pour test
        End Sub
    End Class
    en sachant aussi que jai d'autre button que je ne souhaite pas prendre en compte, disons que je prend en compte seulement les button de 1 a 50

  4. #4
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Pardon, j'ai oublié une ligne de code ...

    Voici le code complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load'    For Each Control In Me.Controls
      For Each Control In Me.Controls     '''''''''''''''''''''''''' *************  La ligne oubliée !!!!!!!!!!!!!
            If TypeOf Control Is Button Then
                Dim Btn As Button = CType(Control, Button)
                If Btn.Name.StartsWith("Button") Then   ' Si sélection des boutons sur base du début de leurs noms
                    AddHandler Btn.Click, AddressOf Me.Bouton_Click
                End If
            End If
        Next
    End Sub
    Pour ce qui est de ne prendre en compte que certains boutons et pas d'autres, il te faut fixer une stratégie de dénomination des boutons.
    Si tu te contente des noms par défaut, ET que tes 50 boutons sont déposés sur le Form à la suite les uns des autres, ils se nomment Button1 à Button50. Mais si tu as déjà 5 autres boutons placés avant les 50, alors les 50 se nomment Button6 à Button55. Tu dois donc savoir ce qu'il en est.
    En supposant (pour l'exemple) que tes 50 boutons sont effectivement nommés Button1 à Button50, je remplacerai le If Btn.Name.StartsWith("Button") Then par If Btn.Name.StartsWith("Button") AndAlso (CType(Btn.Name.Substring(6), Integer) > 0 And CType(Btn.Name.Substring(6), Integer) < 51) Then ' ** en ne considérant que le numéro de chaque bouton.
    A toi de changer les valeurs 0 et 51 selon la numérotation des boutons. Mais il faut que cette numérotation soit continue.

    J'espère que ceci te conviendra ...

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2020
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2020
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    merci encore
    testé et ok

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel bouton radio a été coché
    Par leloup84 dans le forum Langage
    Réponses: 7
    Dernier message: 13/03/2006, 17h55
  2. [ActionEvent][JMenuItem]Connaitre quel bouton a été cliqué
    Par leminipouce dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 16/02/2006, 10h37
  3. [C#] Savoir quel bouton a déclenché l'évènement
    Par Amerok dans le forum ASP.NET
    Réponses: 4
    Dernier message: 01/12/2005, 15h19
  4. Formulaire -> pour savoir sur quel bouton on a cliqué.
    Par Thierry8 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/09/2005, 18h53
  5. [Conception] Tester quel bouton a effectué l'action
    Par Cyborg289 dans le forum Général Java
    Réponses: 6
    Dernier message: 07/07/2005, 23h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo