Poser une procédure sur un control créé dynamiquement [Résolu]

Signaler
Messages postés
89
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
23 février 2010
-
Messages postés
89
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
23 février 2010
-
Bonjour,
alors voilà, je voudrais savoir comment créer une procédure sur un control créé dynamiquement.
Pour exemple...:
Je crée dynamiquement des boutons (CommanButton)
admettons 4 boutons à l'aide d'une boucle For Next...
Succéssivement nommés Bouton1, Bouton2, Bouton3 et Bouton4...
Comment faire pour mettre une action (différente)sur un click de chacun de ces boutons? alors qu' à la base ils n'existent pas encore !!!
Merci d'avances pour vos réponses.

8 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
oui, via WithEvents

Private WithEvents monBouton As CommandButton

Private Sub Form_Load()
    Set monBouton = Me.Controls.Add("VB.CommandButton", "monBouton")
    monBouton.Move 300, 300, 2000, 600
    monBouton.Visible = True
    monBouton.Caption = "Mon Bouton"
End Sub

Private Sub monBouton_Click()
    MsgBox "Click !"
End Sub


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
AddHandler


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
89
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
23 février 2010

Encore un mot que je ne connaissais pas
mais apparament il y a pas mal d'exemple la dessus.
Je vais donc m'y coller.
Merci Renfield (une fois de plus!!)
Messages postés
89
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
23 février 2010

heu... je me suis réjouis trop vite
Il semble que AddHandler soit réservé à .net hors, je suis en VB6 (ma faute, j'aurais du préciser).

Pour l'instant, je bidouille avec un select Case sur les index mais bon, il doit y avoir mieux comme méthode... et si j'avais besoin de créer dynamiquement un seul control pas indexé?

VB6 refuse d'avaler...:
Private Sub MyNewButton_Click()
' Instruction
End Sub

quand MyNewButton n'est pas encore créé.

Donc voilà si vous avez une solution, je suis toujours preneur et je vous en remercie d'avance.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
Entierement ta faute, je te l'accode, puisque tu as précisé .Net ^^

Accueil > Forum > VB.NET et VB 2005 > Divers > Débutants > poser une procédure sur un control créé dynamiquement


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
Messages postés
89
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
23 février 2010

Ha d'accord, Je n'avais pas vu que j'avais posté dans la mauvaise section, désolé.

La class de PCPT est fort bien conçue, pratique et nous apprend à travailler proprement (on n'en attend pas moins de lui), ceci dit, il utilise tout de meme les index des futurs controls, hors, j'aimerais bien savoir si il y a un moyen d'affecter une procédure à un évènement sur un bouton nommé (SANS index) qui n'existe pas encore.

J'avoue que c'est juste par curiosité et qu'il y a moyen de se débrouiller sans mais c'est pour savoir...

Ce que j'adore dans la programmation, c'est que meme quand on ne peut pas faire quelque chose, et ben on peut quand meme
Messages postés
89
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
23 février 2010

Génial !

C'est exactement ça que je voulais savoir.
Merci Renfield.