Tag: 非模态

如何创建非模态表单但阻止?

听起来应该很奇怪,但这只是为了我的爱好。 我想要一个(自定义)消息框弹出一个YesNo按钮,理想情况下应该阻止代码。 但我应该能够点击父窗体,这样我就可以关闭消息框而无需专门点击消息框按钮(相当于在消息框中单击否)。 像这样的东西: void Foo() { CustomMsgBox.Show(“do you really wanna delete?”, CustomMsgBox.Buttons.YesNo); //block the code here, but user should be able to click on form, so that its equivalent to have clicked No; //if clicked No, return; //delete. } 所以我认为的解决方案是使自定义消息框非模态 – 以便用户可以单击表单,但我无法阻止代码..我怎么能这样做? 它看起来像这样: void Foo() { NonModalMsgBox.Show(“do you really wanna delete?”, CustomMsgBox.Buttons.YesNo); //block thread […]

WinForms编程 – 模态和非模态forms问题

我在C#.NET下的表单模态有问题。 假设我的主要forms为#0(见下图)。 此表单代表主要的申请表,用户可以在其中执行各种操作。 但是,有时需要打开其他非模态表单来执行支持任务的其他主要应用程序function。 让我们说这是图像中的#1表格。 在这个#1表单上可能会打开几个额外的模态表单(图像中的#2表单),最后,有一个进度对话框显示一个长的操作进度和状态,这可能需要几个几分钟到几个小时。 问题是,在关闭所有模态窗体(图像中的#2)之前,主窗体#0不响应。 我需要主要forms#0在这种情况下可以运行。 但是,如果您在表单#2中打开非模态表单,则可以使用模式#2表单和新创建的非模态表单。 我需要主表单#0和表单#1与其所有子表单之间的相同行为。 可能吗? 或者我做错了什么? 也许有某种解决方法,我真的不想将所有ShowDialog调用改为Show … 图片http://img225.imageshack.us/img225/1075/modalnonmodalproblem.png