Capacité à trouver de contrôle WinForm via le Tag de la propriété
Je travaille en C# sur un projet WinForm. Le code original utilise la Balise de transmettre adressage matériel info pour un tas de zones de texte que représentent certains registres du matériel de connexion d'un système microcontrôleur. Je sais comment trouver un inconnu de contrôle en recherchant son Nom à l'aide du Contrôle.ControlCollection.Trouver la méthode, mais il est difficile pour moi de savoir si je peux trouver le contrôle par la Balise (juste une chaîne de caractères, dans ce cas).
Itérer sur le Contrôle de la collecte et de la vérification de la balise spécifique de la valeur?
Vous devriez changer votre conception, nous ne devrions pas accomplir une telle tâche. Bien sûr, vous devez faire une boucle par tous les contrôles et la vérification de la
Vous devriez changer votre conception, nous ne devrions pas accomplir une telle tâche. Bien sûr, vous devez faire une boucle par tous les contrôles et la vérification de la
Tag
de chacun jusqu'à ce que vous trouver. La mise en œuvre interne de Find
devrait faire la même chose. La vitesse dépend de la data structure
à l'intérieur.OriginalL'auteur M D | 2013-11-04
Vous devez vous connecter pour publier un commentaire.
Suivi sur mon commentaire:
Ensuite, vous pouvez obtenir le nom de contrôle de l'instruction if et faire ce que vous voulez faire à partir de là.
Simplement l'ajout d'une Édition de cette solution, il obtient encore le peu d'Upvote quelques années plus tard. Vous pouvez également modifier cette solution pour vérifier le type de contrôle qui
c
est et faire différents types de logique. Donc, si vous voulez faire une boucle sur toutes vos commandes et gérer unTextbox
un sens et uneRadioButon
une autre façon, vous pouvez le faire aussi bien. J'ai eu à le faire sur quelques projets, où j'ai pu tout changer un peu le code ci-dessus pour faire ce travail. Pas nécessairement à l'OP de la question, mais pensé que je pourrais ajouter.votre solution initiale a été très efficace dans le cas où la récursivité n'est pas nécessaire. Merci pour la suggestion.
merci pour la suggestion. Qui fonctionne très bien.
Ravi de vous aider. Ne pescolino la réponse de travailler? Sa peut ou peut ne pas être un peu plus agréable, car il renvoie en fait le contrôle, et aussi si vous avez plusieurs contrôles avec des propriétés de balise alors vous pouvez chercher juste que, comme balise spécifique, à l'opposé de ma réponse ici "rattrapage" n'importe quelle balise.
Monde les plus en retard de réponse: Système.De Windows.Les formulaires.Contrôle ne portent une Étiquette de propriété. Cette question a été étiquetée comme un
winforms
question, vous avez lié le Système.**Web**.L'INTERFACE utilisateur de la classe de Contrôle.OriginalL'auteur sab669
Vous pouvez utiliser
LINQ
pour trouver des contrôles basés surTag
OriginalL'auteur Tilak
Passer le ultrapériphériques de contrôle (c'est à dire la forme ou le conteneur dans lequel vous souhaitez rechercher à travers). Notez que ceci inclut le contrôle des racines dans la recherche.
OriginalL'auteur pescolino