public DlgCommInfo() { System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false; InitializeComponent(); Init(); } public delegate void ThreadDelegateHandler(); public static event ThreadDelegateHandler ThreadHandleEvent; //事件触发方法 public static void OnTestEvent() { if (ThreadHandleEvent != null) ThreadHandleEvent(); } public static void ButtonDisable() { button1.Enabled = false; btnHide.Enabled = false; } public static void ButtonEnalbe() { button1.Enabled = true; btnHide.Enabled = true; }
最近需要用线程控制form中的显示问题,最后的解决方案是,将控件设置成static,利用事件机制进行触发。另外因为framework安全问题,需要设置
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;