在C#中将字符串转换为控件名称

Ale*_*lex 2 c# controls winforms

可能重复:
按名称在C#winforms中查找控件

想象一下,我们有4个textBoxes(和一个按钮):

textBox1 :(这里我们必须输入我们要更改背景的textBox的名称)

TextBox2中:()

textBox3 :()

textBox4 :()

在我们的第一个文本框中,我们输入任何其他TextBox的名称,当我们单击一个按钮时 - backrground将相应地更改.

通常我会做这样的事情:

private void button1_Click(object sender, EventArgs e)
{
string variableName = textBox1.Text();

if (variableName == "textBox1")
{
    textBox1.BackColor = Color.Black;
}
else if (variableName == "textBox2")
{
    textBox2.BackColor = Color.Black;
}
else if (variableName == "textBox3")
{
    textBox3.BackColor = Color.Black;
}
else if (variableName == "textBox4")
{
    textBox4.BackColor = Color.Black;
}
}
Run Code Online (Sandbox Code Playgroud)

另一种方式 - 更简单的方法是做同样的操作:

private void button1_Click(object sender, EventArgs e)
{
    string variableName = textBox1.Text();
    variableName.BackColor = Color.Black;
}
Run Code Online (Sandbox Code Playgroud)

就这样!所以我的问题是:

是否可以将字符串转换为"控制名称",如示例中所示?

And*_*lil 10

一种非常乐观的方法

this.Controls.Find("variableName", true)[0].BackColor
Run Code Online (Sandbox Code Playgroud)