OVH Cloud OVH Cloud

Frames imbriquées

2 réponses
Avatar
Jean-Nicolas BERGER
Bonjour,
En VB6, j'ai sur ma feuille des frames imbriquées les unes dans les autres
(je le vérifie clairement en éditant le .FRM dans Notepad). (voir l'exemple
ci-après)
La propriété Parent de la frame contenue (ici Frame2) me renvoie le nom de
ma feuille (From1), et non pas le nom de la frame contenante (Frame1).
Y a-t-il un moyen pour que Frame2 sache me dire qu'elle est contenue dans
Frame1 (autrement qu'en itérant sur tous les Controls de Form1 et en testant
chacun des ContainedControls) ? A noter que l'imbrication s'arrête dans
l'exemple au premier niveau, mais qu'elle peut dans mon code aller plus
loin... :-(
Merci d'avance pour votre aide.
JN.

VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 3090
ClientLeft = 60
ClientTop = 450
ClientWidth = 4680
LinkTopic = "Form1"
ScaleHeight = 3090
ScaleWidth = 4680
StartUpPosition = 3 'Windows Default
Begin VB.Frame Frame1
Caption = "Frame1"
Height = 2175
Left = 240
TabIndex = 0
Top = 600
Width = 4095
Begin VB.Frame Frame2
Caption = "Frame2"
Height = 1095
Left = 1080
TabIndex = 1
Top = 600
Width = 2055
Begin VB.TextBox Text1
Height = 375
Left = 480
TabIndex = 2
Text = "Text1"
Top = 360
Width = 1095
End
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False

2 réponses

Avatar
Jacques93
Bonjour Jean-Nicolas BERGER,
Jean-Nicolas BERGER a écrit :
Bonjour,
En VB6, j'ai sur ma feuille des frames imbriquées les unes dans les autres
(je le vérifie clairement en éditant le .FRM dans Notepad). (voir l'exemple
ci-après)
La propriété Parent de la frame contenue (ici Frame2) me renvoie le nom de
ma feuille (From1), et non pas le nom de la frame contenante (Frame1).
Y a-t-il un moyen pour que Frame2 sache me dire qu'elle est contenue dans
Frame1 (autrement qu'en itérant sur tous les Controls de Form1 et en testant
chacun des ContainedControls) ? A noter que l'imbrication s'arrête dans
l'exemple au premier niveau, mais qu'elle peut dans mon code aller plus
loin... :-(
Merci d'avance pour votre aide.



Utilises la propriété Container :

Frame2.Container => Frame1

--
Cordialement,

Jacques.
Avatar
Jacques93
Un exemple un peu plus comlet avec 5 Frames imbriquées :

Dim f As Frame

Set f = Frame5
Do
Debug.Print f.Container.Name
Set f = f.Container
Loop While f.Container.Name <> Me.Name
Debug.Print f.Container.Name


--
Cordialement,

Jacques.