我可以使用.net控件父类来启用/禁用它吗?

时间:2009-10-18 15:27:48

标签: .net winforms multithreading controls parent-child

我需要编写一个多线程程序的委托,它将启用/禁用各种控件。似乎合乎逻辑的是,对所有控件使用一个处理程序将是最佳选择,但我甚至不确定在.net中是否可行,如果可以的话如何实现。

1 个答案:

答案 0 :(得分:1)

public void SetControlsEnabled(bool enabled)
{
    // Make sure we're in the correct thread
    if (InvokeRequired)
    {
        // If not, run the method on the UI thread
        Invoke(new MethodInvoker(() => SetControlsEnabled(enabled)));
        return;
    }

    // Put all control code here, e.g:
    // control1.Enabled = enabled;
    // control2.Enabled = enabled;

    // Alternatively, do a foreach(Control c in Controls) { ... }

}