Maison >développement back-end >C++ >Comment puis-je accéder dynamiquement aux contrôles des formulaires Windows par nom en C #?

Comment puis-je accéder dynamiquement aux contrôles des formulaires Windows par nom en C #?

Barbara Streisand
Barbara Streisandoriginal
2025-01-27 13:16:09661parcourir

How Can I Dynamically Access Windows Forms Controls by Name in C#?

Accès dynamique aux contrôles Windows Forms par nom en C#

En C#, les contrôles Windows Forms sont généralement obtenus en référençant directement le nom du contrôle. Cependant, cette approche devient peu pratique lorsque le contrôle est généré dynamiquement. Face à cette situation, une alternative plus dynamique est nécessaire.

Pour accéder dynamiquement à un contrôle Windows Forms par son nom, vous pouvez utiliser la méthode Control.ControlCollection.Find. Disons que vous avez un myMenu généré dynamiquement nommé ToolStripMenuItem. Vous souhaitez accéder à cet élément de menu par programme en utilisant son nom généré.

Voici comment y parvenir en utilisant la méthode Find :

<code class="language-csharp">string name = "myMenu"; // 注意这里需要用字符串字面量,而不是变量myMenu
Control[] controls = this.Controls.Find(name, true); //第二个参数true表示递归查找子控件
if (controls.Length > 0 && controls[0] is ToolStripMenuItem menuItem)
{
    // 访问并操作控件
    menuItem.Enabled = false; // 例如,禁用菜单项
}
else
{
    // 控件未找到
    Console.WriteLine("Control not found.");
}</code>
La méthode

Find accepte une chaîne représentant le nom du contrôle. Il renvoie un tableau contenant des Control objets correspondant à ce nom. Dans ce cas, vous obtiendrez un tableau contenant myMenu ToolStripMenuItem. Vous pouvez ensuite utiliser ce tableau pour accéder et manipuler les contrôles. Remarque : Le deuxième paramètre de la méthode Find est défini sur true, ce qui signifie une recherche récursive de sous-contrôles. Si myMenu n'est pas sous un contrôle enfant direct du formulaire actuel, il doit être défini sur true pour le trouver. Si le contrôle n'est pas trouvé, controls.Length sera 0. Pour des raisons de sécurité, il est recommandé de vérifier le type de contrôle avant d'accéder aux propriétés du contrôle.

L'utilisation de la méthode Find vous permet de faire référence à un contrôle par son nom généré dynamiquement, fournissant ainsi un mécanisme flexible et efficace pour travailler avec des formulaires complexes et dynamiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn