Ajouter dynamiquement une frame avec des optionbutton

cs_davyboy Messages postés 18 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 9 juillet 2009 - 15 janv. 2003 à 10:05
vbMarco Messages postés 10 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 25 avril 2003 - 7 févr. 2003 à 15:31
Bonjour , je créé un prog qui convertit une DB foxpro en MySQL. Pour cela je dois afficher pour chaque champ une ligne avec les types et params correspondant dont 3 optionbutton(radiobutton) permettant de choisir soit clef primaire, soit indexé ou unique. Pour chaque champ je load donc une frame contenant 3 optionbutton.

Mon problème est que lorsque je load ma frame les optionbutton n'apparaissent pas. J'ai essayé avec des optionbutton dynamique (indexé) comme la frame, les optionbutton sans index, avec le même nom, rien à faire il n'apparaissent pas, uniquement la frame vide. J'ai également joué avec la propriété visible et top sans aucun résultat.

Voici mon code (les commentaires sont les différents tests) :

If i <> 1 Then
Load .FrmOptButton(i - 1) '.RadioIndex(i - 1)
.FrmOptButton(i - 1).Top = .FrmOptButton(0).Top + (480 * (i - 1))
.FrmOptButton(i - 1).Visible = True
Load .RadioIndex(i - 1)
.RadioIndex(i - 1).Top = .RadioIndex(0).Top + 240 '* (i - 1))
.RadioIndex(i - 1).Visible = True
End If

Merci d'avance

2 réponses

cs_davyboy Messages postés 18 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 9 juillet 2009
20 janv. 2003 à 15:55
Merci les gars ... heureusement g finis par trouver seul .. pfffff
VIVE LA COMMUNAUTE .. mais comme je susi pas rancunier je vous file la soluce .. qui était simple en fait cat-r il suffisait de rajouter à mon code la propriété COntainer aux optionbuttons .

Code exemple :

Private Function AddFrames()
Dim i As Integer
Dim T As Integer
'Dim Index As Integer

T = CInt(MyNbr.Text)

For i = 1 To T
Dim Myframe As Frame
Set Myframe = Form1.Controls.Add("VB.Frame", "Index" & i)


Myframe.Width = 2500
Myframe.Height = 1000
Myframe.Top = 150 + i * 1000 + 10
Myframe.Left = 400
Myframe.Visible = True

For j = 10 To 12
X = j - 9
Dim MyoptionButton As OptionButton
Set MyoptionButton = Form1.Controls.Add("VB.OptionButton", "OBIndex" & (j * i))
MyoptionButton.Width = 1500
MyoptionButton.Height = 100
MyoptionButton.Top = 10 + X * 250
MyoptionButton.Left = 100
MyoptionButton.Caption = "OBIndex" & (j * i)

MyoptionButton.Visible = True
Set MyoptionButton.Container = Myframe

Next



Next

Form1.Height = 1500 + i * 1000 + i * 10


End Function

NB : évidemment ça marche aussi avec Load .... ciao
0
vbMarco Messages postés 10 Date d'inscription jeudi 6 février 2003 Statut Membre Dernière intervention 25 avril 2003
7 févr. 2003 à 15:31
Merci danyboy!

La propriété Container est la solution à mon ptit bug.

Si je peux te rendre l'appareil ça va me faire plaisir!

Bonne chance!

Marco
@+
0
Rejoignez-nous