运行表单时,我只想在运行时在标签中获取活动表单的所有文本框的名称。
我进行了很多搜索,但发现的全部内容是他们没有更改文本框的名称。
var allTexboxes = this.Controls.OfType<TextBox>();
var sortedTextBoxes = allTexboxes
.Where(i => String.IsNullOrEmpty(i.Text))
.OrderBy(i => i.Name)
.ToArray();
答案 0 :(得分:0)
您的代码示例和您想要的解释令人困惑。如果要在表单中包含所有文本框名称的数组:
<tr>
短语“ this”是指表格。如果您想从表格的另一端进行此计算,请将该关键字替换为引用该关键字的变量。
您还可以使用lamda表达式在单个表达式中获取数组中的所有文本框。
string[] GetTexBoxNames()
{
var names =new List<string>();
for each(var c in this.Controls)
{
if(c is TextBox)
{
names.Add(c.name);
}
}
return names.ToArray();
}
您可能想要的另一件事是所有文本框的字典,其名称为键。除非查找速度至关重要,否则不需要此操作,因为您可以使用lamda查找最终数组中的文本框,该文本框的速度比字典查找慢。您可以使用简单的for循环遍历每个文本框,然后按名称将其放入词典中。
如果我弄错了,您可能可以编辑此代码以适合您的目的。请澄清,我也将更新此答案。