J'ai déjà posé une question très similaire, mais cette fois-ci ce n'est pas une question de syntaxe VB, mais plutôt la meilleure approche. Je fais une méthode qui, lorsqu'elle est passée à un composant, va la recolorer et tous les composants qu'elle contient. Voici le code que j'ai jusqu'à présent, mais il ne recolore pas tous les composants, mais seulement quelques-uns. Mon problème principal est que les boutons restent dans leurs styles "3D" et ne deviennent pas "plats".Recoloration de composant récursif sélectif dans VB
If TypeOf comp Is System.Windows.Forms.ButtonBase Then
Dim c As System.Windows.Forms.ButtonBase
c = comp
c.FlatStyle = Windows.Forms.FlatStyle.Flat
c.BackColor = getColor(style, PART_BOX)
c.ForeColor = getColor(style, PART_TEXT)
comp = c
End If
Le composant est passé comp
, et le procédé getColor
regarde dans une base de données et renvoie une couleur correspondant au paramètre part
transmis à la méthode. Cela fonctionne pour tous les composants de bas niveau et tous les composants simples comme les étiquettes.
Comme vous pouvez le voir, ce n'est pas mon préféré résultat. Est-ce que quelqu'un sait comment recolorer des fileurs, des boutons et des barres de menu? Encore une fois, j'ai besoin du bouton pour finir par être plat.
Qu'en est-filateurs et des boutons? – Supuhstar
Je pense que vous remarquerez que j'ai déjà codé en aplatissant et en coloriant le bouton. – Supuhstar