Find control by name from Windows Forms controls

2018-12-31 15:08发布

问题:

I have a list of my textbox names, and I want to find a control by name. How is it possible?

回答1:

Use Control.ControlCollection.Find.

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

EDIT for asker:

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


回答2:

You can use:

f.Controls[name];

Where f is your form variable. That gives you the control with name name.



回答3:

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

If Controls.Find is not found \"textBox1\" => error. You must add code.

If(tbx != null)

Edit:

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


标签: c# .net winforms