c# - 通过 C# 递归通知子控件

标签 c# winforms controls

我有一个窗体 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);

关于c# - 通过 C# 递归通知子控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1418018/

相关文章:

wpf - 将 WPF 项目作为 WinForm 解决方案中的进程进行调试

WinForms - 调整大小事件后的操作

c# - 什么样的创造性设计模式适合这些要求?

c# - uwp 如何一次调整模板项目源中项目的大小?

c# - 函数应该以 "Get"开头?

c# - 如何将 C# Winform 中另一个类的文本附加到 richTextBox?

c# - ServiceStack ORMLite 对 View 的支持

c# - 我如何计算使用 DateTime 已经过了多少时间?

asp.net-mvc - ASP.NET MVC 是否使用常规工具箱控件?

c - Win32 C/C++ 添加一个按钮到桌面