Créer des contrôles en éxécution

Résolu
Signaler
Messages postés
31
Date d'inscription
lundi 14 mars 2005
Statut
Membre
Dernière intervention
9 novembre 2008
-
Messages postés
31
Date d'inscription
lundi 14 mars 2005
Statut
Membre
Dernière intervention
9 novembre 2008
-
Voilà je voudrais savoir si il est possible en VB6 de créer des contrôles (comme une msgbox ou une listbox) en éxécution.
Je m'explique : par exemple on à déjà un Command button dans l'appli et je veux faire en sorte que lorsque l'on clique dessus : il me créé par exemple 5 autres bouttons à côté. Le code serait un peu à la manière du générateur de form que j'ai déposé sur ce site (source N° 30625)
Si quelqu'un peut me dire comment faire ou si c'est carrément impossible à réaliser.

[mailto:M@xwells M@xwells] M@ni@c

5 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,

Regarde si ce qui suit peut t aider

Ajoute sur une feuille un command button et met sa propriete index a 0.

Ensuite dans le code:

Dim i As Integer

For i = 1 To 5
Load Command1(i)
Command1(i).Caption = "Bouton " & i
Command1(i).Top = Command1(0).Top + i * Command1(0).Height
Command1(i).Visible = True
Next

Voila
@+
Julien
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Bonjour,

Pour compléter la réponse de econs, ce
code te permet de gérer les évenement Click, tu as aussi cette
façon de créer tes boutons dynamiques.Ce code est plus long, c'est un
choix.



Option Explicit

Dim WithEvents obj1 As CommandButton

Dim WithEvents obj2 As CommandButton

Dim WithEvents obj3 As CommandButton



Private Sub Command1_Click()

On Error Resume Next

Set obj1 = Controls.Add("VB.CommandButton", "button")

obj1.Visible = True

obj1.Top = 100

obj1.Left = 100

obj1.Caption = "Ouvrir"



Set obj2 = Controls.Add("VB.CommandButton", "button1")

obj2.Visible = True

obj2.Top = 600

obj2.Left = 100

obj2.Caption = "Valider"



Set obj3 = Controls.Add("VB.CommandButton", "button2")

obj3.Visible = True

obj3.Top = 1100

obj3.Left = 100

obj3.Caption = "Quitter"

End Sub



Private Sub obj1_Click()

MsgBox "Bonjour"

End Sub



Private Sub obj2_Click()

MsgBox "Ceci est un exemple !"

End Sub



Private Sub obj3_Click()

MsgBox "Au revoir"

Unload Me

End Sub



jpleroisse
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Et quand tu as ces nouveaux boutons, il faut leur associer des évenements Click (sinon, il ne servent à rien tes boutons).

Pour les boutons créés par jrivet, l'évenement Click se définit ainsi :







Private Sub Command1_Click(Index As Integer)

Select Case Index

Case 1 :

MsgBox "Faire l'action associée au bouton 1"

Case 2 :

MsgBox "Faire l'action associée au bouton 2"

Case 3,4,5 :

MsgBox "Ne rien faire"

End Select

End Sub

Manu
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Note que si tu n'as que deux boutons qui doivent "apparaître", tu peux
les créer à l'avance, mais mettre leur propriété Visible à False.

Quand tu cliques sur ton bouton visible, tu mets les propriétés Visible
de tes boutons invisibles à True, et hop, ils apparaissent.



Dès que le nombre de bouton augmente, et si ces boutons ont des actions similaires, la méthode décrite conjointement par jrivet et moi-même est la plus appropriée.

Manu
Messages postés
31
Date d'inscription
lundi 14 mars 2005
Statut
Membre
Dernière intervention
9 novembre 2008

Merci à tous pour vos réponses. Pour que vous sachiez, c'est
l'utilisateur qui détermine le nombres de bouttons qu'il souhaite
avoir. Je vais tester les différentes solutions que vous me proposer.



Merci à tous.

[mailto:M@xwells M@xwells] M@ni@c



Ce site est génial. J'ai presque toujours eu une ou plusieurs réponses aux questions que j'ai posées.



Merci CodesSources.COM