private List<Control> _allControls = new List<Control>();
private void InitializeControlList()
{
Queue<Control.ControlCollection> q = new Queue<Control.ControlCollection>();
q.Enqueue(this.Controls);
while (q.Count > 0)
{
Control.ControlCollection controls = (Control.ControlCollection)q.Dequeue();
if (controls == null || controls.Count == 0) continue;
foreach (Control control in controls)
{
q.Enqueue(control.Controls);
this._allControls.Add(control);
}
}
}
net 中很多类有时很有必要用一下
如果是从控件找所在窗体,只要用 FindForm()