2009-10-18 31 views
0

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

+0

你可以解释一下,为什么代表?这与处理程序是一样的吗? – 2009-10-18 17:06:21

+0

使用工作者线程时,必须调用委托来更新在另一个线程中创建的UI控件。我想创建一个委托,可以处理所有类型的UI控件,只要启用禁用即可。 – Gio 2009-10-18 17:13:39

+0

在这种情况下,刺客93的答案似乎是现货。 – 2009-10-18 20:34:26

回答

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) { ... } 

} 
+0

不错。我真正想要的是基础类“控制”。谢谢。 – Gio 2009-10-22 05:15:22

相关问题