2009-03-19 4 views
2

J'ai besoin de changer le texte de la boîte de groupe à une couleur spécifique sans changer la couleur de ce qui est à l'intérieur de la boîte de groupe.Comment modifier le ForeColor d'un GroupBox sans appliquer cette couleur à chaque contrôle enfant?

Le code suivant définit la ForeColor du GroupBox au rose, mais ce paramètres en cascade à tous les contrôles enfants ainsi:

groupbox.ForeColor = Color.Pink 

Comment puis-je changer le ForeColor d'un GroupBox sans avoir cette couleur appliquée à tous les contrôle des enfants aussi bien?

+0

Merci @Andrew pour le format !! – Dhana

Répondre

4

Vous pouvez parcourir tous les contrôles dans GroupBox et définir leurs propriétés ForeColor respectives:

groupBox1.ForeColor = Color.Pink; 
foreach (Control ctl in groupBox1.Controls) { 
    ctl.ForeColor = SystemColors.ControlText; 
} 
+0

-1 Cela doit être récursif pour * tous * les contrôles enfants. –

+2

@Andrew, non, les enfants de contrôles enfants qui sont eux-mêmes des conteneurs "hériteront" de la propriété ForeColor de leur parent immédiat, pas du GroupBox –

+1

Ah, oui vous avez raison! (-1) supprimé et ma réponse supprimée. –

0
form_load() 
{ 
    ... 
    foreach (Control ctl in groupbox.Controls) 
    { 
     // load color value from parent and explicitly set it to control level 
     ctl.ForeColor = ctl.ForeColor; 
    } 
    ... 
} 


some_click() 
{ 
    groupbox.ForeColor = Color.Pink; 
} 

someother_click() 
{ 
    groupbox.ForeColor = Color.Green; 
} 

couleur n'est pas réglé pour ChildControl jusqu'à ce qu'elle fait explicitement, et lorsque la couleur de ChildControl l'a demandé prise de le parent. Changer la couleur du parent rafraîchira tout son contenu et childcontrol prendra la couleur du parent.

Si vous définissez (explicitement) la couleur de l'enfant, l'enfant ne demandera pas de parent.

La couleur enfant peut également être définie dans le concepteur, mais si la couleur est la même que la couleur du parent, le concepteur réduit ce paramètre. Le code dans l'événement load force l'enfant à avoir sa propre couleur.

Questions connexes