在C#中使用变量作为文本框名称的一部分

时间:2011-02-28 15:02:50

标签: c# variables object loops textbox

我正在开发一个程序,旁边有30个文本框和30个复选框。我希望人们检查姓名,然后按发送按钮。程序然后将名称保存在txt文件中,旁边有一个true或false语句,然后将文件上传到ftp服务器以供我分析。 我面临的问题是我不想为每个文本和复选框编写代码来加载并将其值保存在txt文件中。 如果我将文本框的名称命名为tbox1; tbox2; tbox3等。如何使用循环来表示写入tbox i +的值;在thing.txt的 i 行上+ cbox i ,反之亦然? 请帮助任何帮助,因为这将为我节省大量的unneacery代码写作!

5 个答案:

答案 0 :(得分:4)

您应该创建一个List<TextBox>,并在构造函数中使用您的文本框填充它。

然后,您可以遍历列表并处理文本框。

答案 1 :(得分:2)

        for (int i = 0; i <= count; i++)
        {
            TextBox textbox = (TextBox)Controls.Find(string.Format("tbox{0}", i),false).FirstOrDefault();
            CheckBox checkbox = (CheckBox)Controls.Find(string.Format("cbox{0}", i),false).FirstOrDefault();

            string s = textbox.Text + (checkbox.Checked ? "true" : "false");
        }

答案 2 :(得分:1)

您可以遍历表单上的所有控件,并根据其类型/名称从中检索值。

答案 3 :(得分:0)

假设这是ASP.NET,您可以使用以下内容:

StringBuilder sb = new StringBuilder();
for(int i = 1; i < 30; i++){
    TextBox tb = FindControl("TextBox" + i);
    Checkbox cb = FindControl("CheckBox" + i);
    sb.AppendFormat("TextBox{0}={1}; {2}", i, tb.Text, cb.Checked);
}
string result = sb.ToString();
// Now write 'result' to your text file.

答案 4 :(得分:0)

在表单/控件中循环控件并调查名称:

        foreach (Control control in f.Controls)
        {
            if (control is TextBox)
            {
               //Investigate and do your thing
            }
        }