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 :

Clic sur bouton créé dynamiquement


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 128
    Par défaut Clic sur bouton créé dynamiquement
    Bonjour,
    Avec mon programme vb 2010, je créé des boutons dynamiquement en fonction du nombre de lignes que contient un tableau. Tout va bien, ils sont créés et s'affichent. Cependant, je ne sais pas comment faire pour gérer les clics. Savez vous comment faire ?
    Voilà mon code de création de boutons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        Public Sub CreerBoutonsDetails()
            ReDim BoutonsDetails(0 To NBMatiere - 1) 'Tableau contenant les boutons
            Dim i As Integer
            Me.InitializeComponent()
            For i = 0 To NBMatiere - 1
                BoutonsDetails(i) = New Button
                BoutonsDetails(i).Text = "Détails"
                BoutonsDetails(i).Visible = True
                BoutonsDetails(i).Left = 600
                BoutonsDetails(i).Top = BoutonsDetails(i).Height / 2 + (i + 1) * BoutonsDetails(i).Height
                Me.Controls.Add(BoutonsDetails(i))
            Next
        End Sub
    Merci

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddHandler Instance.Event, AddressOf LaSub
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 128
    Par défaut Faut mettre ça où ?
    Faut mettre ton code où ?

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    dans google
    [ame="http://www.google.be/search?sourceid=chrome&ie=UTF-8&q=AddHandler+Instance.Event%2C+AddressOf+LaSub"]AddHandler Instance.Event, AddressOf LaSub - Google zoeken[/ame]

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    ou dans msdn (l'aide de vs), accessible via F1
    et en plus simple tu tapes AddHandler, tu mets ton curseur dessus et tu fais F1, tu vas tomber sur la bonne page directement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 128
    Par défaut Malgré tout
    Merci à Pol63 pour la première indication, mais malgré tout il a fallu chercher. Pour ceux que ça intéresse, je mets mon nouveau 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
        Public Sub CreerBoutonsDetails()
            ReDim BoutonsDetails(0 To NBMatiere - 1)
            Dim i As Integer
            Me.InitializeComponent()
            For i = 0 To NBMatiere - 1
                BoutonsDetails(i) = New Button
                BoutonsDetails(i).Text = "Détails"
                BoutonsDetails(i).Visible = True
                BoutonsDetails(i).Left = 600
                BoutonsDetails(i).Top = BoutonsDetails(i).Height / 2 + (i + 1) * BoutonsDetails(i).Height
                Me.Controls.Add(BoutonsDetails(i))
                AddHandler (BoutonsDetails(i).Click), AddressOf Bouton_Click
            Next
        End Sub
    La Sub appelée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Sub Bouton_Click()
            For i = 0 To NBMatiere - 1
                If BoutonsDetails(i).Focused Then
                    Debug.Print(i)
                End If
            Next
     
        End Sub

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    la signature de la méthode doit être la même que celle de l'event (ce qui n'est pas ton cas)
    ca permet d'ailleurs de récupérer le bouton cliqué via sender

    signature = paramètres en nombre et en type
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Je crois pas qu'une erreur soit générée dans le cas présent (doit être soit null, soit même signature).

    Néanmoins je suis entiérement d'accord que c'est pas propre de l'oublier !

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

Discussions similaires

  1. [VB.NET] Trouver un handle, simuler clic sur bouton
    Par 6su7 dans le forum Windows Forms
    Réponses: 33
    Dernier message: 21/08/2006, 09h38
  2. Désactivation et détection de clic sur bouton radio
    Par Prue dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 21/04/2006, 13h50
  3. charger nouvelle page par clic sur bouton (pas pop-up)
    Par michaelbob dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/09/2005, 16h04
  4. Detection clic sur bouton precedent
    Par shaun_the_sheep dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 20/10/2004, 17h18
  5. Réponses: 9
    Dernier message: 23/02/2004, 19h14

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