【问题标题】:disable "Close" button when another dialog is on top当另一个对话框位于顶部时禁用“关闭”按钮
【发布时间】:2012-06-28 03:26:39
【问题描述】:

我目前对这里的表单有疑问。

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

我怎样才能防止这种情况发生?我是否必须禁用进度条后面的整个表单?我该怎么做?

附言 我尝试过thisthisthis,但它们似乎都不适用于我的应用程序。 T__T

【问题讨论】:

  • 在显示进度条时,应防止用户点击后面表单中的任何内容。
  • 是的。而已。这正是我想要发生的事情..如何做到这一点?

标签: c# .net winforms


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    查看更多信息:http://msdn.microsoft.com/en-us/library/system.windows.forms.form.formclosing.aspx

    【讨论】:

    • 这是一个有趣的方法。常用于多线程应用程序(即下载管理器)。
    【解决方案3】:

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

    HTH。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多