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 :

AddHandler et Bouton crée dynamiquement


Sujet :

VB.NET

  1. #1
    Dos
    Dos est déconnecté
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 137
    Points : 84
    Points
    84
    Par défaut AddHandler et Bouton crée dynamiquement
    Bonjour,
    J'ai un soucis lorsque je crée un bouton dynamiquement, l’événement AddHandler ne remonte pas jusqu'au menu.

    Je m'explique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim lMenu As menuTest
    Dim lBtn As New Button
    lBtn.Text = "test"
    lBtn.CommandName = CStr(2)
    lBtn.CommandArgument = "test"
    AddHandler lBtn.Click, AddressOf TestBouton
    lMenu.Controls.Add(lBtn)

    On a beau cliquer sur le bouton lBtn la fonction TestBouton n'est jamais appelée..

    Merci de votre aide...
    Dos

  2. #2
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  3. #3
    Dos
    Dos est déconnecté
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 137
    Points : 84
    Points
    84
    Par défaut
    Merci, je connais en gros comment ça marche mais là on n'arrive pas remonter la "barrière" du menu. C'est comme si les événement ne parvenaient pas à la couche du dessus...
    Dos

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2010
    Messages : 132
    Points : 166
    Points
    166
    Par défaut
    Vous avez essayé de déclarer le button comme "withevent"

    Dim Btn as Button
    Public/Friend withevent Btn as Button

  5. #5
    Dos
    Dos est déconnecté
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 137
    Points : 84
    Points
    84
    Par défaut
    Merci,
    Malheureusement j'ai l'erreur
    WithEvents n'est pas valide dans une déclaration de variable locale
    ...
    Dos

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2010
    Messages : 132
    Points : 166
    Points
    166
    Par défaut
    ca doit etre déclaré en variable module ou class


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Module MyModule '/class
     
        Dim variable 'module/class(utilisable dans toutes les sub)
     
        Sub Mysub()
            Dim variable 'sub(locale) (utilisable dans cette sub seulement)
        End Sub
     
    End Module '/class
    et donc dans votre cas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Module MyModule2
        Private WithEvents Btn As button
        Sub Mysub()
            Btn = New button
        End Sub
    End Module '/class

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 172
    Points : 25 112
    Points
    25 112
    Par défaut
    withevents fait des addhandler ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut addhandler ,control
    bonjour
    voici le code pour associer un gestionnaire d'evenement à n'importe quel controle sous entendu qu'il gere ce type d'evenement.
    Faire attention au nom du controle pour eviter des collisions avec des controles crees sur le designer portant le meme nom.
    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
     
     
    Public Class Form1
        'il faut cette declaration de classe en winform
        Private WithEvents btn1 As New Button
     
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Me.btn1.Text = "monBouton"
            Me.btn1.Location = New Point(100, 100)
            Me.btn1.Size = New Size(75, 25)
            AddHandler Me.btn1.Click, AddressOf btn_click
            Me.Controls.Add(Me.btn1)
     
        End Sub
        Private Sub btn_click(ByVal sender As Object, ByVal e As System.EventArgs)
            MessageBox.Show("btn clique")
        End Sub
    End Class
    Voici une utilisation dans un module avec handlers de form et button:

    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
     
     
    Module Module2
        'il faut cette declaration de classe en winform
        Private WithEvents btn1 As New Button
        Private WithEvents maForme As New Form
        Private exColor As Color
        Public Sub Main()
            maForme.Name = "Form1"
            maForme.Text = "Form1 Dynamique"
            maForme.Size = New Size(300, 300)
            exColor = maForme.BackColor
            btn1.Text = "monBouton"
            btn1.Location = New Point(100, 100)
            btn1.Size = New Size(75, 25)
            AddHandler btn1.Click, AddressOf btn_click
     
            maForme.Controls.Add(btn1)
            maForme.ShowDialog()
        End Sub
     
        Private Sub btn_click(ByVal sender As Object, ByVal e As System.EventArgs)
            MessageBox.Show("btn clique")
        End Sub
     
        Private Sub maForme_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles maForme.MouseEnter
     
            maForme.BackColor = Color.Aquamarine
        End Sub
     
        Private Sub maForme_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles maForme.MouseLeave
            maForme.BackColor = exColor
        End Sub
    End Module
    bon code....

  9. #9
    Dos
    Dos est déconnecté
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 137
    Points : 84
    Points
    84
    Par défaut
    Désolé, je n'ai pas précisé que j'étais en aspx.vb (je ne suis peut-être pas dans le bon forum). Je ne suis dans pas dans une winform et la déclaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Private WithEvents btn1 As New Button
    ne semble pas autorisée...
    Dos

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/08/2010, 16h02
  2. AddHandler pour Boutons créé dynamiquement
    Par RTN14 dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/04/2010, 15h16
  3. évènements sur plusieurs boutons crées dynamiquement
    Par Mangacker dans le forum C++Builder
    Réponses: 40
    Dernier message: 01/05/2008, 18h57
  4. Action sur des boutons crées dynamiquement
    Par barthelus76 dans le forum SWT/JFace
    Réponses: 13
    Dernier message: 28/06/2007, 20h32
  5. OnClick d'un Bouton créée dynamiquement
    Par ero-sennin dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/06/2006, 13h52

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