你如何循环通过特定的文本框

时间:2011-04-14 08:43:55

标签: c# visual-studio-2010

我找到的代码可以让我遍历表单上的每个文本框,然后允许我将它与某些条件进行比较。但这不是我想做的。我知道我要循环的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属性进行测试。

由于

4 个答案:

答案 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)]。文字;