禁用"关闭"当另一个对话框在顶部时按钮

时间:2012-06-28 03:26:39

标签: c# .net winforms

我目前在此处遇到表单问题。

每当某个进程正在进行时,我都会弹出一个进度对话框,但是当我单击进度对话框后面的窗口/表单的“X”按钮时,它将被解除并且正在进行的操作被取消。

如何防止这种情况发生?我是否必须在进度条后面禁用整个表单?我该怎么办?

P.S。 我尝试了thisthis以及this,但其中没有一个似乎适用于我的应用程序。 T__T

3 个答案:

答案 0 :(得分:3)

使用Form.ShowDialog()代替Form.Show()启动表单。这将禁用背景表单(实际上是进程中的任何其他表单),直到您显示的表单关闭。作为额外的好处,您可以让表单返回一个值(例如取消,确定,是,否等),以防万一需要采取任何行动。

答案 1 :(得分:1)

实际上并不是您可能期望的答案,但您可以处理Form.FormClosing事件,设置e.Cancel = True

这不会禁用“关闭”按钮,但在这种情况下会使您的表单保持打开状态。

详情请见:http://msdn.microsoft.com/en-us/library/system.windows.forms.form.formclosing.aspx

答案 2 :(得分:0)

您应该将进度条显示为模式对话框,请检查此答案是否适合您javasript like model window on winform

HTH。