Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récupérer les noms des objets

5 réponses
Avatar
Titeuf
Bonsoir,
Je suis sous [VB2005.Net Beta2]
Je désire récupérer le nom de tout les objets présent dans ma form.
Pour cela j'utilise le code suivant.

Dim myObject as Control

For each myObject in MaForm.Controls
Debug.Print (MyObject.Name)
Next

Cela marche mais dans ma form j'ai des objets de type "container" comme des
Panels, GroupBox et TabControl et mon code ci-dessus ne "voit" pas les
objets qui sont dans ses "containers"
Je précise que la propriété "Modifiers" de tout les objets de la form sont
en public et friend !

Quelqu'un a t-il saurait-il comment faire en partant de mon code ou pas
comment récupérer le nom de tout les objets de ma form y compris ceux qui
sont dans des "containers" ?

Merci d'avance.

5 réponses

Avatar
Fred
"Titeuf" a écrit dans le message de
news:
Bonsoir,



Bonjour,

Je suis sous [VB2005.Net Beta2]
Je désire récupérer le nom de tout les objets présent dans ma form.



Une procédure récursive ?

Sub ControlList(oControl As Control)
If oControl.HasChildren Then
Dim oChild As Control
For Each oChild in oControl.Controls
Debug.Print(oChild.Name)
ControlList(oChild)
Next
End If
End Sub
Avatar
Titeuf
Merci c'est ce qu'il me faut :)

"Fred" a écrit dans le message de news:

"Titeuf" a écrit dans le message de
news:
Bonsoir,



Bonjour,

Je suis sous [VB2005.Net Beta2]
Je désire récupérer le nom de tout les objets présent dans ma form.



Une procédure récursive ?

Sub ControlList(oControl As Control)
If oControl.HasChildren Then
Dim oChild As Control
For Each oChild in oControl.Controls
Debug.Print(oChild.Name)
ControlList(oChild)
Next
End If
End Sub



Avatar
TroXsA - [VB.NET-2005]
ça doit aussi fonctionner ça non ?

For each myObject in Controls
Console.WriteLine (MyObject.Name)
Next

--
TroXsA
http://cerbermail.com/?rIXgaw9Xsl
Avatar
Titeuf
Oui sa fonctionne mais sa produit le meme resultat que le code que j'ai
posté ci-dessus c'est à dire qu'il ne voit pas les objets qui sont à
l'intérieur des panels, groupbox et autre container


"TroXsA - [VB.NET-2005]" a écrit dans le message de
news: df1enj$u3f$
ça doit aussi fonctionner ça non ?

For each myObject in Controls
Console.WriteLine (MyObject.Name)
Next

--
TroXsA
http://cerbermail.com/?rIXgaw9Xsl



Avatar
Francois Muller
"Titeuf" a écrit dans le message de news:
Je suis sous [VB2005.Net Beta2]
Je désire récupérer le nom de tout les objets présent dans ma form.



Cela marche mais dans ma form j'ai des objets de type "container" comme
des Panels, GroupBox et TabControl et mon code ci-dessus ne "voit" pas les
objets qui sont dans ses "containers"



Simple, lister récursivement pour les objets implémentant IContainer.
Exemple :

Sub ListControls(anObject as Control)
For each myObject in anObject .Controls
Debug.Print (MyObject.Name)
if myObject is IContainer then
ListControls (myObject)
endif
Next
end sub

F.