通过C#递归通知子控件

我有一个表单MainForm,它是一个包含许多子控件的Windows窗体表单.我想在MainForm上调用一个通知其所有子节点的函数. Windows窗体表单是否提供了执行此操作的方法?我玩更新,刷新和无效,但没有成功.

解决方法:

foreach (Control ctrl in this.Controls)
{
    // call whatever you want on ctrl
}

如果要访问表单上的所有控件,以及表单上每个控件的所有控件(依此类推,递归),请使用如下函数:

public void DoSomething(Control.ControlCollection controls)
{
    foreach (Control ctrl in controls)
    {
        // do something to ctrl
        MessageBox.Show(ctrl.Name);
        // recurse through all child controls
        DoSomething(ctrl.Controls);
    }
}

…通过最初传入表单的Controls集合调用,如下所示:

DoSomething(this.Controls);
上一篇:python – MySQL的数据库版本控制


下一篇:c#-将元素添加到Microsoft WinForm控件