C# 默认控件集合
当我使用设计器创建控件并将其添加到我的C# 默认控件集合,c#,winforms,collections,controls,C#,Winforms,Collections,Controls,当我使用设计器创建控件并将其添加到我的WinForm时,我的控件是否与其他所有控件一起自动添加到某个集合中 假设有20个TextBox,我需要同时清除它们,而不是像这样调用: txtbox1.Clear(); txtbox2.Clear(); txtbox3.Clear(); ... 我知道我应该在没有设计器的情况下手动创建每个控件,并将它们添加到集合中,但现在为时已晚。你知道我是否可以访问整个控制组吗 试试这个 private void ClearTextBoxes() { Action&
WinForm
时,我的控件是否与其他所有控件一起自动添加到某个集合中
假设有20个TextBox
,我需要同时清除它们,而不是像这样调用:
txtbox1.Clear();
txtbox2.Clear();
txtbox3.Clear();
...
我知道我应该在没有设计器的情况下手动创建每个控件,并将它们添加到集合中,但现在为时已晚。你知道我是否可以访问整个控制组吗 试试这个
private void ClearTextBoxes()
{
Action<Control.ControlCollection> func = null;
func = (controls) =>
{
foreach (Control control in controls)
if (control is TextBox)
(control as TextBox).Clear();
else
func(control.Controls);
};
func(Controls);
}
private void cleartextbox()
{
Action func=null;
func=(控件)=>
{
foreach(控件中的控件)
如果(控件为文本框)
(控件作为文本框)。清除();
其他的
func(control.Controls);
};
func(控制);
}
哦,在我写下我的问题之后,我发现了如何做到这一点。
我可以在这个控件上使用foreach循环
。
然后我测试控件是否是文本框
foreach (Control x in this.Controls)
{
if (x is TextBox)
{
((TextBox)x).Text = String.Empty;
}
}
我刚刚发现了什么。虽然你的版本有点太复杂了。但正是由于我需要注意的逻辑,这将在容器上失败:在那里,您需要像Garry那样深入挖掘