我有一个带有主窗体和几个后台线程的Windows窗体应用程序。为了显示“好”的消息,我实现了一个表单,使用ShowDialog()
显示为模式对话框。
对ShowDialog()
的所有调用都是在主窗体的表单级别上实现的(而不是在线程级别上),但有时我会从一个线程触发一个事件,该事件将在主窗体的表单级别上处理。在这些情况下,对话框不再是模态的...主窗体不会被阻止。当没有从线程触发对ShowDialog()
的调用时,它根据需要是模态的。
如何确保每次调用ShowDialog()都会阻止主窗体?
答案 0 :(得分:8)
如何确保每次拨打
ShowDialog()
都会阻止主表单?
在主线程上执行对ShowDialog()
的调用。如果需要从其他线程调用它们,请使用Invoke()
在主线程上运行它们。