我找到的代码可以让我遍历表单上的每个文本框,然后允许我将它与某些条件进行比较。但这不是我想做的。我知道我要循环的4个文本框,我只是不知道如何引用那些4,而不循环遍历表单上的每个文本框。从我的程序角度来看,这不是一个真正的问题,因为我总共只有大约20个文本框。但这不是重点,我想知道如何正确地做到这一点。
基本上我有4个文本框:MyTxtBox1,MyTxtBox2,MyTxtBox3和MyTxtBox4。它只有我想要循环。
有些事情:
for (int i = 1; i < 5; i++)
{
string myName = "MyTxtBox" + i.ToString();
if (MyFunction(this.myName))
{
return;
}
}
但是this.myName不起作用,这可能是因为它只是一个字符串。在我将文本框名称构建为字符串后,我不知道如何引用表单上的文本框。
任何人都可以看到我正在尝试做什么,甚至可能吗?或者我必须遍历表单上的每个文本框,然后针对其.Name属性进行测试。
由于
答案 0 :(得分:3)
文本框是一个控件。创建一个ControlCollection,然后使用ControlCollection.Find()方法...类似
Control.ControlCollection collection = this.Controls;
Control newControl=collection.Find(<textbox name here>,true);
并通过所需的循环运行它。
答案 1 :(得分:1)
考虑一下这个问题:
{
List<Textbox> list = new List<Textbox>();
list.Add(myBox1);
list.Add(myBox1);
..
foreach (Textbox box in list)
if (MyFuction(box))
return;
}
答案 2 :(得分:0)
尝试将它们放在一个组合框中,这样您就可以访问该组框的所有控件。
答案 3 :(得分:0)
this.Controls [“yourtextboxname”+ Convert.ToString(i + 1)]。文字;