web-dev-qa-db-fra.com

Rechercher le contrôle par nom à partir des contrôles Windows Forms

J'ai une liste de mes noms de zone de texte et je veux trouver un contrôle par nom. Comment est-ce possible?

36
krunal shah

Utilisez Control.ControlCollection.Find .

TextBox tbx = this.Controls.Find("textBox1", true).FirstOrDefault() as TextBox;
tbx.Text = "found!";

EDIT pour le demandeur:

Control[] tbxs = this.Controls.Find(txtbox_and_message[0,0], true);
if (tbxs != null && tbxs.Length > 0)
{
    tbxs[0].Text = "Found!";
}
91
bla

Vous pouvez utiliser:

f.Controls[name];

f est votre variable de formulaire. Cela vous donne le contrôle avec le nom name.

11
CesarGon
TextBox tbx = this.Controls.Find("textBox1", true).FirstOrDefault() as TextBox;
tbx.Text = "found!";

Si Controls.Find n’est pas trouvé "textBox1" => erreur. Vous devez ajouter du code.

If(tbx != null)

Modifier:

TextBox tbx = this.Controls.Find("textBox1", true).FirstOrDefault() as TextBox;
If(tbx != null)
   tbx.Text = "found!";
5
Nguyen Ngoc Quyen