如何在c#中找到所有控件和组件
本文关键字:控件 组件 | 更新日期: 2023-09-27 18:02:40
我有一个窗口窗体,其中包含一些控件和一些组件(如DataTable, XPCollection等)。我想找到所有的控件名称和组件名称使用到这个形式。
你可以,
List<string> ctrlNames = new List<string>();
FIndAllCtrls(ctrlNames , this.Controls);
private void FIndAllCtrls(ctrlNames, ControlCollection ctrlColl)
{
foreach(Control ctrl in ctrlColl)
{
ctrlNames.Add(ctrl.Name);
if(ctrl.Controls.Count > 0)
FIndAllCtrls(ctrlNames, ctrl.Controls);
}
}
IEnumerable<Control> EnumControls(Control top)
{
Queue<Control> todo = new Queue<Control>();
todo.Enqueue(top);
while (todo.Count > 0)
{
Control c = todo.Dequeue();
yield return c;
foreach (Control ch in c.Controls)
todo.Enqueue(ch);
}
}
说明如下:查找窗体c#上的组件(不是控件)