Pb de gestion des objets dynamiques

sbouquet Messages postés 70 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 15 mars 2004 - 27 nov. 2003 à 20:00
sbouquet Messages postés 70 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 15 mars 2004 - 29 nov. 2003 à 01:13
Bonjour a tous (et a toutes)

Voila a la base j'ai une combobox et un bouton sur mon form, et j'ai le code suivant:

Dim WithEvents ctlCombo As VB.ComboBox
Dim WithEvents ctlCombo2 As VB.ComboBox
Dim WithEvents cltFrame As VB.Frame
Dim TCombo(127) As ComboBox
Dim TCombo2(127) As ComboBox
Dim TFrame(127) As Frame

Private Sub Command1_Click()
For i = 1 To Combo1.Text
Set ctlframe = Me.Controls.Add("vb.frame", "ctlframe" + CStr(i), Form1)
Set TFrame(i) = ctlframe
ctlframe.Caption = "Hub 1"
ctlframe.Visible = True
ctlframe.Top = 600
ctlframe.Left = 300
ctlframe.Width = 5500
ctlframe.Height = 1500

Set ctlCombo = Me.Controls.Add("vb.combobox", "ctlcombo" + CStr(i), ctlframe)
Set TCombo(i) = ctlCombo
ctlCombo.Visible = True
ctlCombo.Text = "Select"
ctlCombo.Top = 300
ctlCombo.Left = 1200
ctlCombo.AddItem "Cisco"

Set ctlCombo2 = Me.Controls.Add("vb.combobox", "ctlcombo2" + CStr(i), ctlframe)
Set TCombo2(i) = ctlCombo2
ctlCombo2.Visible = True
ctlCombo2.Text = "Select"
ctlCombo2.Top = 800
ctlCombo2.Left = 1200
Next i

For i = 2 To Combo1.Text
TFrame(i).Visible = True
TFrame(i).Caption = "Hub " & i
TFrame(i).Top = TFrame(i - 1).Top + TFrame(i - 1).Height + 20
Next i
End Sub

Private Sub ctlCombo_Click()
ctlCombo2.AddItem "Router"
End Sub

Bon en fait c juste une petite partie du code que j'ai pour vous montrer ce que je fais parce que je suis pas sur que j'aurais reussi a bien expliquer. Bref, voila donc ici j'ajoute le mot "Router" a mon 2eme combobox (ctlcombo2) créé dynamiquement si je click sur le premier combobox (ctlcombo), seul pb c qu'il faut que je le fasse pour tous les combobox (TCombo2) qui sont créés et ca seulement si je click sur le premier combobox (TCombo) et le pb est bien entendu je ne peux creer de fonction TCombo(i)_Click() alors est ce possible de le faire et si oui comment ? merci de bien vouloir m'aider sur ce pb delicat.

7 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
27 nov. 2003 à 21:13
Ce n'est pas TCombo(i)_Click() mais TCombo_Click(i)

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0
sbouquet Messages postés 70 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 15 mars 2004
28 nov. 2003 à 15:30
j'ai essayer de rajouter ceci

Private Sub TCombo_Click(i)
TCombo2(i).AddItem "Router"
End Sub

mais rien ne se passe quand je click sur une la combobox. Fo t'il que je fasse appelle a la fonction qlq part dans le code ?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 nov. 2003 à 17:44
Ce n'est pas : Private Sub TCombo_Click(i) mais c'est :

Private Sub TCombo_Click(ByVal Index As Integer)

TCombo2(Index).AddItem "Router"

End Sub

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0
sbouquet Messages postés 70 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 15 mars 2004
28 nov. 2003 à 19:12
Bien, encore merci!
0

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

Posez votre question
sbouquet Messages postés 70 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 15 mars 2004
28 nov. 2003 à 19:27
Je crois que j'ai crié victoire trop vite je viens de tester ca ne marche pas. Peut etre pourrais tu me fournir un peu plus d'explication sur le pourquoi faut-il mettre:
Byval Index as Integer
En te remerciant
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 nov. 2003 à 19:37
En fait, lorsque tu charge un contrôle de façon dynamique, tu crée un groupe de contrôle (contrôles avec le même nom, mais avec des numéros d'index différents pour pouvoir y accèder).
Donc, le ByVal Index As Integer définis la propriété index du contrôle crée (pour pouvoir tester l'index du contrôle cliqué par exemple).

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0
sbouquet Messages postés 70 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 15 mars 2004
29 nov. 2003 à 01:13
Merci pour l'explication, malheureusement ca ne marche apparemment pas ou alors il faut que je fasse appelle a la fonction et dans ce cas le mot "router" est mis dans ma combobox parce que je fais appelle a cette fonction et non parce que j'ai clické sur l'autre combobox. Je commence a devenir fou, je suis si pret de finir mon prog mais je bloque sur cette partie, est ce la l'unique solution ?
En tout cas merci quand meme d'avoir essayer de m'aider
%-6
0
Rejoignez-nous