cs_drakkard
Messages postés100Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention20 janvier 2009
-
18 août 2005 à 16:07
cs_drakkard
Messages postés100Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention20 janvier 2009
-
22 août 2005 à 11:36
Bonjour, bonjour,
je cherche à vérifier le statut de plusieurs control ( label, combo, ... )
dans un frame spécifique.
Savoir si ils sont actifs ou non et visibles ou non...
Je pensais à un for each control, mais je galère...
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 18 août 2005 à 18:16
pourquoi tu MELANGES la proposition de Scortex sous .NET et la mienne sous VB6
une petite erreur par contre
MSDN : Conseil L'instruction Select Case peut s'avérer mieux adaptée à l'évaluation d'une expression simple qui possède plusieurs actions possibles. Toutefois, la clause TypeOfobjectnameIsobjecttype ne peut pas être utilisée avec Select Case.
Donc petite variante en conséquence... (testé de suite)
Private Sub Command1_Click()
Dim Ctrl As Object
For Each Ctrl In Me
If Ctrl.Container Is Frame1 Then
If TypeOf Ctrl Is TextBox Then
MsgBox "TXT... contenu de " & Ctrl.Name & " : " & Ctrl.Text
ElseIf TypeOf Ctrl Is ComboBox Then
MsgBox "CBO... contenu de " & Ctrl.Name & " : " & Ctrl.Text
End If
End If
Next Ctrl
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 18 août 2005 à 16:44
Salut
non :
dim Ctrl as Objet
for each Ctrl in Me
Select case TypeOf Ctrl
Case TxtBox
If Ctrl.Text="machin" then Msgbox "blabla"
If Ctrl.Visible=True then Msgbox "blabla"
Case CommandButton
If Ctrl.Caption="machin" then Msgbox "blabla"
If Ctrl.Enabled=False then Msgbox "blabla"
'etc...
End Select
Next Ctrl
PCPT
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_drakkard
Messages postés100Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention20 janvier 2009 18 août 2005 à 16:47
cela devrait ressembler à cela ???
j'ai une erreur avec ce qui suit
While i < Form.Controls.Count
If TypeOf Form.Controls(i) Is Frame Then
MsgBox "frame : " & Form.Controls(i).Name ' just pour le test
While j < Form.Controls(i).Controls.Count
MsgBox Form.Controls(i).Controls(j).Name 'just pour le test
Wend
cs_drakkard
Messages postés100Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention20 janvier 2009 18 août 2005 à 17:04
je modifie ma question,
j'ai des combos et des labels sur un frame dans un formulaire.
Je souhaite vérifier l'état de ces combos et labels, du frame,
pas les autres qui sont sur le formulaire...
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200618 18 août 2005 à 17:44
Frame.controls ne sera jamais accepté car la collection controls ne fait partie que du container form (le nom de ta form).
Mais, dans l'expression form.frame.controls , remplace form par le nom de ta form (form1 ou le nom que tu lui as donné) et frame par le nom de ta frame (frame1 ou le nom que tu lui as donné).
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200618 18 août 2005 à 17:50
Si tu veux, je crée une form (que j'appelle 'totoform') et dedans je met une frame (que j'appele 'totoframe'). Dans cette frame je met un controle (textbox1). Ca donnera :
mavar = totoform.totoframe.textbox1.text
Là, tu affiches le contenu de textbox1 qui est dans ta frame totoframe, laquelle est dans ta form totoform.
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Yaume1
Messages postés86Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention13 septembre 20051 18 août 2005 à 18:00
je suis pas d'accord avec toi CanisLupus (mais je me trompe peut-être...)
Quand tu as textbox1 dans Frame1 dans Form1, tu fais
"Form1.TextBox1.text" ou "Form1.TextBox1.Left" ou ce que tu veux
d'autre, sans mettre le ".frame1" . Chez moi ça pédale dans la soupe si
tu lui dis comme toi tu fais !!!!
cs_drakkard
Messages postés100Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention20 janvier 2009 18 août 2005 à 18:02
ok ok !!!
ma form s'appelle faudit, mon frame frame1,
et j'ai dans le form label1, label2, combo1, combo2
donc si je souhaite énumérer ( pour l'exemple ) le nom des controls je devrais avoir un truc du genre :
dim Ctrl as Objet
for each Ctrl in faudit.frame1.controls '<== pour énumérer les controls
Select case TypeOf Ctrl '<== pour info mon vb demande le "Is" ici !!!
Case label
mytext = "Label : "
Msgbox mytext & ctrl.Name
Case Combobox
mytext = "Combobox : "
Msgbox mytext & ctrl.Name
'etc...
End Select
Next Ctrl
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 18 août 2005 à 19:07
bah si t'es capable de faire et d'emprisonner un menu dans une frame, çà m'intéresse grandement ;)
si tu listes correctement uniquement les éléments qui t'interessent, posés sur la FRAME, qui est elle-même posée sur la FORM, comment veux-tu qu'un menu qui appartient à une FORM puisse être listé dans le contenu des objets de ta FRAME.....
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200618 18 août 2005 à 19:33
drakkard > J'aimerais bien voir le code que tu as créé au final (si tu as tenu compte des réponses sur ce topic) et qui énumère le menu. Car il doit y avoir un prob.
-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?