我在WinForm
中有十个组框。每个组框包含10个文本框,我已经定义了每个TextBox
名称。如何使用foreach循环获取每个文本框?
答案 0 :(得分:14)
foreach(Control gb in this.Controls)
{
if(gb is GroupBox)
{
foreach(Control tb in gb.Controls)
{
if(tb is TextBox)
{
//here is where you access all the textboxs.
}
}
}
}
但是如果你定义了每个TextBox名称
通过循环获取每个TextBox
有什么意义?
您可以定义List<TextBox>
以在创建每个TextBox
时保留其引用,然后只需访问List
即可访问每个TextBox
。
答案 1 :(得分:6)
这是我的建议:
foreach(var groupBox in Controls.OfType<GroupBox>())
{
foreach(var textBox in groupBox.Controls.OfType<TextBox>())
{
// Do Something
}
}
或者将它放在一个循环中:
foreach (var textBox in Controls.OfType<GroupBox>().SelectMany(groupBox => groupBox.Controls.OfType<TextBox>()))
{
// Do Something
}
答案 2 :(得分:1)
尝试以下代码,
Control.ControlCollection coll = this.Controls;
foreach(Control c in coll) {
if(c != null)
}
答案 3 :(得分:0)
foreach (var ctrl in gbDatabaseColumns.Controls)
{
if (ctrl is DevExpress.XtraEditors.TextEdit)
{
StoreTextEdit(config, (ctrl as DevExpress.XtraEditors.TextEdit));
}
}