Question

Est-il possible sur Windows pour récupérer la couleur utilisée comme couleur de fond pour les contrôles inactifs (TextBox, etc.)? Ou mieux encore, la couleur de la bordure trop?

Ceci est pour Windows Forms et je n'ai pas pu trouver quoi que ce soit approprié dans SystemColors. Il n'y a pas une telle chose

ESPECE. J'ai une zone de texte qui ne peut être assez grand pour le texte qu'il détient et il est désactivé. Quand il est désactivé, l'utilisateur ne peut pas faire défiler pour afficher tout le texte et je ne peux même afficher une info-bulle pour des raisons évidentes .

Alors que je l'ai fait est maintenant définissant la propriété TextBox du ReadOnly à true qui me permet d'afficher les info-bulles et avoir le contrôle scrollable. Le client veut maintenant la zone de texte pour ressembler était désactivé; ReadOnly est une propriété assez désagréable car il reste regarde comme il peut être modifié. Donc, je pensais mettre la couleur de fond appropriée là-bas pourrait être suffisant pour tromper la plupart des utilisateurs. Je ne peux pas utiliser une valeur de gris arbitraire, car il y a d'autres contrôles désactivés sur cette forme et ainsi les différences de couleur seraient probablement noté. Alors, est-il un moyen que je peux savoir comment un contrôle désactivé obtient rendu? couleur de fond et couleur de la bordure ou au moins l'ancien devrait vraiment être assez ici, mais je préfère ne pas deviner. Plates-formes en question sont compatibles avec XP et Vista très probablement à la fois peut-être avec ou sans thèmes.

ETA: Mépris. La question était stupide et une erreur en mon nom j'aurais repéré plus tôt. Il était juste un peu bizarre qu'un seul TextBox ne serait pas adhérer à un fond gris.

Était-ce utile?

La solution

Lorsqu'il est désactivé, la zone de texte a SystemColors.Control couleur d'arrière-plan et SystemColors.GrayText couleur de premier plan.

Autres conseils

Essayez ceci:

        treeView1.EnabledChanged += (s, o) =>
            {
                treeView1.BackColor = treeView1.Enabled ? Color.White : SystemColors.Control;
            };
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top