Poser une procédure sur un control créé dynamiquement

Résolu
SnkVrt Messages postés 89 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 23 février 2010 - 2 déc. 2009 à 00:30
SnkVrt Messages postés 89 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 23 février 2010 - 7 déc. 2009 à 11:28
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 déc. 2009 à 10:22
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
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 déc. 2009 à 07:10
AddHandler


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
SnkVrt Messages postés 89 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 23 février 2010
2 déc. 2009 à 10:15
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!!)
0
SnkVrt Messages postés 89 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 23 février 2010
7 déc. 2009 à 01:54
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 déc. 2009 à 06:42
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
7 déc. 2009 à 06:50
0
SnkVrt Messages postés 89 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 23 février 2010
7 déc. 2009 à 10:03
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
0
SnkVrt Messages postés 89 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 23 février 2010
7 déc. 2009 à 11:28
Génial !

C'est exactement ça que je voulais savoir.
Merci Renfield.
0
Rejoignez-nous