Style xp - flatstyle = system sur tous les controls de la form

Soyez le premier à donner votre avis sur cette source.

Vue 11 858 fois - Téléchargée 948 fois

Description

Ce code n'est pas vraiment de moi mais de "jmenfous" (merci à lui)
Je l'ai quand même un peu modifier !!!!!

Le principe est de modifier automatique la proprietes FlatStyle = System sur tous les objets de la form, tels que les boutons, les checkbox, les radiobutton, etc.... (en faite les objets qui ont la proprietes FlatStyle)

Ca vous évitera de modifier à chaque fois la proprietes de vos objets, et surtout si vous avez déjà développé des applications avec le style standard, de ne pas devoir tout repasser les objets un par un.

Source / Exemple :



        • Dans un module *****
Public Sub Appliquer_Style_XP(ByVal vCtrl As Control) Dim C As Control 'recherche de tout les controls For Each C In vCtrl.Controls 'verification du type Select Case C.GetType.ToString Case "System.Windows.Forms.Button" Dim CBtn As System.Windows.Forms.Button CBtn = C CBtn.FlatStyle = FlatStyle.System CBtn = Nothing 'leberation memoire Case "System.Windows.Forms.GroupBox" Appliquer_Style_XP(C) Dim cGBox As System.Windows.Forms.GroupBox cGBox = C cGBox.FlatStyle = FlatStyle.System cGBox = Nothing 'memoire quand tu nous tiend Case "System.Windows.Forms.CheckBox" Appliquer_Style_XP(C) Dim chckBox As System.Windows.Forms.CheckBox chckBox = C chckBox.FlatStyle = FlatStyle.System chckBox = Nothing 'memoire quand tu nous tiend Case "System.Windows.Forms.RadioButton" Appliquer_Style_XP(C) Dim cRdtnBox As System.Windows.Forms.RadioButton cRdtnBox = C cRdtnBox.FlatStyle = FlatStyle.System cRdtnBox = Nothing 'memoire quand tu nous tiend Case Else Appliquer_Style_XP(C) ' et c'est reparti pour chercher les autres controls qui sont contenus dans C End Select Next 'Liberation memeoire C = Nothing End Sub
        • Dans le Form_Load de la form ****
Appliquer_Style_XP(Me)

Conclusion :


N'oubliez pas bien sur d'activer le style xp en rajoutant :
Application.EnableVisualStyles() avant InitializeComponent() et aprés MyBase.New() dans #Region " Code généré par le Concepteur Windows Form "

comme ceci :

MyBase.New()

Application.EnableVisualStyles()
'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()

Codes Sources

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
lol :)

va voir la source http://www.vbfrance.com/code.aspx?ID=27121
je penses justement répondre à ta même question :)
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
117
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
2 juillet 2009
1
La liberation de la memoire dans le code c'est preferable, le garbage collector autrement dit ramasse miette... il a tendence a ne rammacer que des miettes... lol

Vu que l'on ne trouve pas grand chose sur ce garbage collector, j'ai fais des tests de boucles sur des objets (ecriture, lecture de fichiers XML) avec et sans liberation de la memoire dans le code.
Sur le serveur de test, un Bi-Xeon 2,6 Ghz avec 2Go de RAM ECC. J'ai constate que la memoire n'etait liberee qu'en fin de code. Le temps d'execution n'etait pas tellement plus faible avec liberation memoire. Par contre le meme test avec des threads m'a prouve que le code etait plus fiable avec liberation memoire (dans le cas contraire des fichiers n'etaient pas bien fermes alors que j'utilisais des mutex pour la secrurisation des donnees communes aux differents threads).

Pour conclure, je trouve la liberation a la main plus efficace, plus rapide et surtout tellement plus propre. ;-)

Si qq a fait d'autre tests, je suis preneur de ses conclusions.

PS : pensez a mettre une methode Dispose dans vos classes? Aidons nos petite barettes de memoire. Faitent comme moi utilisez la liberation de la memoire, car elles le valent bien.

Pour le mouvement de liberation de la memoire, donnez vos dons a :
liberation_de_la_memoire@parcequelelevauxbien.com

;-)
Messages postés
1
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
31 octobre 2004

Bonjour TheEwook,

Tout d'abord merci pour cette transmission de savoir.

Je débarque dans le milieu de la programmation, Vb.Net étant mon premier langage.

J'ai trouvé ton code très intéressant, clair et surtout pour moi très instructif.
J'aimerais te poser une question non pas sur le code lui même mais plus sur ta manière de coder afin de mieux comprendre .Net.

Pourquoi fais-tu une libération implicite de la mémoire au lieu de laisser le CLR du FrameWork.Net s'en charger (grâce à fonction de Garbage Collector)?

Merci d'avance pour ta réponse.
Messages postés
19
Date d'inscription
mardi 29 janvier 2002
Statut
Membre
Dernière intervention
21 juillet 2005

Je voulais juste dire que j'ai effectivement une source identique. Mais je vais être constructif et d'ici quelques jours je vais mettre en ligne une source qui en plus permet de savoir si WindowsXP se trouve en style classique ou bien en style XP. Parce que si on utilise cette source directement on ne peut jamais modifier la couleur des boutons (FlatStyle = System inhibe la propriété BackColor des boutons) même si Windows XP est en style classique.
Afficher les 9 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.