Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CHANGER LES PROPRIÉTÉS DE TOUS LES CONTRÔLES D'UNE FENÊTRE


Information sur la source

Catégorie :Control Source .NET ( DotNet ) Niveau : Débutant Date de création : 27/10/2004 Date de mise à jour : 27/10/2004 11:55:19 Vu : 5 930

Note :
6,4 / 10 - par 5 personnes
6,40 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

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

  • ' 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
' 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....
 

Historique

27 octobre 2004 11:12:40 :
Mise à jour : 1- J'ai simplement déplacé mon texte pour qu'il passe mieux à l'affichage
27 octobre 2004 11:15:05 :
Mise à jour : 1- J'ai simplement modifié mon texte pour qu'il apparaisse mieux à l'écran
27 octobre 2004 11:19:24 :
Mise à jour : 1- J'ai simplement modifié la position de mon texte pour qu'il apparaisse correctement à l'écran.
27 octobre 2004 11:55:19 :
J'ai changé la catégorie de ma source. Avant : Trucs et Astuces Maintenant : Control

Commentaires et avis

signaler à un administrateur
Commentaire de jmenfous le 27/10/2004 13:50:48

Petite info: Tu n'as pas vu la source de TheEwook
http://www.vbfrance.com/code.aspx?id=25537

c'est pas trop loint de ton code et tt les controls contenus par d'autres controls sont geres.

signaler à un administrateur
Commentaire de yoda le 27/10/2004 15:52:24

Désolé je n'avais pas vu. Je laisse quand même ma source puisque nous n'avons pas exactement la même technique. Je rappelle qu'avec quelques lignes en plus ce code peut gérer tous les contrôles d'une winForm sachant qu'il n'y a que quelques composants qui ont une propriété FlatStyle.
Merci bien évidemment pour ce commentaire constructif pour tout le monde.

signaler à un administrateur
Commentaire de jmenfous le 27/10/2004 16:03:59

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.

signaler à un administrateur
Commentaire de yoda le 27/10/2004 20:21:18

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é...

signaler à un administrateur
Commentaire de franz le 28/10/2004 16:08:39

Bravo et merci, maître Yoda.

signaler à un administrateur
Commentaire de mdabin le 10/05/2007 16:18:09

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

signaler à un administrateur
Commentaire de jmenfous le 10/05/2007 16:51:10

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

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.