从许多Winform控件中检索值的最佳方法是?

时间:2017-07-05 22:15:48

标签: c# winforms

我正在开展一个项目,要求我设计一个包含大量文本字段和几个按钮的表单。由于Visual Studio的自动生成代码,我需要大约150多个文本字段才能从与表单分开的类中获取值。

表单的一部分是每个标签都包含相似的布局,但它们之间存在细微差别。由于标签的工作方式,我必须为标签之间共享的每个字段使用不同的名称,而不是相对于指定标签访问该字段。这导致了如此多的表单控件。

我的问题是这个...目前我正在开发一个类,允许我从所有这些文本字段中获取值并在文档模板(Word XML文件)上运行字符串替换以覆盖占位符相关文本字段中的值。有没有一种更有效的方法来做到这一点,而不仅仅是为表单的每个成员创建一个访问器方法,并使用它将值传递给string.Replace()方法?

我是C#的新手,所以这是我能想到解决问题的唯一方法。

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你想要为你的WinForm应用程序批量更新所有文本框控件。

幸运的是,WinForm控件主要来自Control类,它提供Control对象的.Name和.Text。

您可以使用此代码执行此操作:

// Loop through all controls in the form
foreach(Control control in this.Controls)
{
   if(control is TextBox)
   {
      // DO WORK
   }
}

您可以致电control.Textcontrol.Name来获取对循环中姓名或文字的访问权。

这会回答你的问题吗?