Changer les propriétés de tous les contrôles d'une fenêtre

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 477 fois - Téléchargée 34 fois

Contenu du snippet

Mon code permet de modifier les propriétés de tous les contrôles d'une fenêtre. Ce qui permet par exemple de modifier les couleurs de tous les boutons d'une fenêtre en une seule fois. Dans le code je montre comment modifier une propriété qui gère la forme des contrôles mais j'ai ajouté en commentaire le code qui permet de modifier la couleur de chaque contrôle. Sinon le code est commenté.

Source / Exemple :


' Dans la première boucle vous pouvez ajouter 
' le code suivant, il permet de voir le 
' contenu
' de la variable j (Ajouter une listBox 
' dans la fenêtre) : listBox1.Items.Add
' (j.current)
Dim j As System.Collections.IEnumerator
j = Controls.GetEnumerator
While j.MoveNext
     If TypeOf j.Current Is GroupBox Then
          ' Pour accéder aux objets contenus 
          ' dans un groupBox, il faut
          ' passer par sa propre collection 
          ' de contrôle 
          ' cf *
          CType(j.Current, GroupBox).FlatStyle _
          = FlatStyle.Standard
          CType(j.Current, GroupBox).Refresh()
          Dim i As System.Collections.IEnumerator
          i = j.Current.Controls.GetEnumerator
          While i.MoveNext
              If TypeOf i.Current Is Button Then
                 ' cf *
                  CType(i.Current, Button).FlatStyle _ 
                  = FlatStyle.Standard
                  CType(i.Current, Button).Refresh()
              End If
          End While
     End If
     If TypeOf j.Current Is Button Then
         ' *
         ' C'est à ce niveau que l'on accède aux propriétés 
         ' de l'objet que l'on veut modifier.
         ' Exemple supplémentaire : 
         ' CType(i.Current, Button).BackColor  = color.Blue
         ' Vous l'aurez évidemment remarqué 
         ' que ce code permet, 
         ' en quelque ligne, de modifier la couleur 
         ' de tous les boutons
         ' de la fenêtre.
         CType(j.Current, Button).FlatStyle _
         = FlatStyle.Standard
     End If
     If TypeOf j.Current Is RadioButton Then
          ' cf *
          CType(j.Current, RadioButton).FlatStyle _ 
          = FlatStyle.Standard
     End If
     If TypeOf j.Current Is CheckBox Then
          ' cf *
          CType(j.Current, CheckBox).FlatStyle _ 
          = FlatStyle.Standard
     End If
End While

Conclusion :


Si vous avez besoin d'explications, posez vos questions ici....

A voir également

Ajouter un commentaire

Commentaires

Messages postés
117
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
2 juillet 2009
1
Pour le moment non, mais quand Linq serra disponible via le framework 3.5 ça devrait être possible.

... enfin je pondère un peu ma réponse... on en dispose pas encore d'une ligne miracle qui fait tout, mais tu peux utiliser la réflexion pour déterminer si un control a la propriété que tu veux modifier sans pour autant coder explicitement la liste de tout les types de controls qui ont cette propriété.

@+ en espérant que ça t'aidera
Messages postés
4
Date d'inscription
mercredi 15 septembre 2004
Statut
Membre
Dernière intervention
27 avril 2007

Comment faire si on veut modifier les memes proprietes d'un groupe d'objets et non de tous les objets? (C'est à dire sans modifier un par un les propriété de chaque objet ) Peut on indicer les objets comme cela etait possible sous VB6?(Visiblement non; Exemple: Label(i).visible=False )
Merci
Messages postés
12
Date d'inscription
jeudi 27 décembre 2001
Statut
Membre
Dernière intervention
29 avril 2008

Bravo et merci, maître Yoda.
Messages postés
19
Date d'inscription
mardi 29 janvier 2002
Statut
Membre
Dernière intervention
21 juillet 2005

Merci bonne esprit c'est tellement rare de nos jours...
Je suis en train d'ajouter une vrai gestion du style XP avec prise en compte de l'OS et même une prise en compte en live lorsque l'on change le style depuis la fenêtre de propriété du bureau... Alors reste à l'écoute. Sinon si tu as des sources sur le site je veux bien les voir parce ton exemple pour le code de TheEwook n'est pas bête du tout, je n'y avais pas pensé...
Messages postés
117
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
2 juillet 2009
1
Pourquoi etre desole?

Ton code est propre et l'utilisation du 'TypeOf' est bien plus judicieuse. Non non et encore non tu n'as pas a etre desole ;-)

De plus pour gerer tt les control tu n'as pas besoin de quelques lignes... un seule bien placee et ca tourne. ;-)

Moi j'aime bien ta source c'est pour cela que j'ai mis une note! Perso quand j'aime pas... je ne note pas.
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.