Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 默认控件集合_C#_Winforms_Collections_Controls - Fatal编程技术网

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那样深入挖掘