changement de label ForeColor pour chaîne spécifique
Je suis en train d'écrire une application WinForms. J'ai beaucoup d'étiquettes qui représentent une partie de son statut (Activé/Désactivé etc). Je veux que chaque état pour être de différentes couleurs (vert, gris...).
La seule façon que je sais d'obtenir ce qui est de vérifier si l'étiquette.Le texte correspond à l'état obligatoire et ensuite modifier son ForeColor. Mais c'est une voie difficile, car j'ai besoin d'effectuer cette vérification à chaque fois que je définir le statut de l'étiquette dans mon application.
Je me demande si il n'y a aucune façon de le faire "en un seul endroit?".
Par exemple l'écriture d'une méthode qui vous permettra de vérifier toutes les étiquettes de chaîne spécifique et viens de l'appeler à partir de Form_Load()
Vous devez vous connecter pour publier un commentaire.
Énumérer toutes les étiquettes de Formulaire à l'aide de Contrôles de Formulaire et des contrôles enfants, par exemple, utiliser GetAll méthode de cette réponse :
Comment obtenir TOUS les contrôles enfants de un Windows Forms forme d'un type spécifique (Bouton/zone de texte)?
Et puis définissez une couleur appropriée, quelque chose comme ceci :
Vous pouvez créer votre propre étiquette personnalisée classe qui hérite de la classe Label. Quelque chose comme ceci:
Et donc au lieu de l'aide de l'utilisation sur l'Étiquette MyLabel partout.
Ajouter toutes vos étiquettes pour une Liste sur Form_Load(), alors vous pouvez faire un .Où(l => l'.Texte == "String vous êtes à la recherche"). Itérer sur ceux de définir la forecolor de façon appropriée
Vous pouvez également profiter de la propriété Tag de contrôle label. Jeu de Tag sur "Statut" pour tous les contrôles d'étiquette que vous utilisez pour afficher l'état et dans l'événement Page_Load, faire tourner une boucle pour définir ForeColor.