【问题标题】:Open dialog box prevents windows shutdown打开对话框防止 Windows 关机
【发布时间】:2013-06-18 01:03:43
【问题描述】:

我有一个 C# GUI 应用程序,它使用 MessageBox.Show(Message); 显示一条消息,但是如果用户未能单击此消息,然后请求关闭 PC,它会阻止关闭。 如何防止我打开的对话框阻止关机?

【问题讨论】:

  • 当它失去焦点时可能会自动关闭它?
  • 什么版本的windows?
  • 这是正常行为。 MessageBox 通知用户需要他们做某事的事情(即使只是单击OK 以确认他们已经看到了对话框)。告诉你的用户做他们应该做的事情并在尝试关闭他们的系统之前关闭 MessageBox,或者使用你自己的 WinForm 代替它可以监视和响应 WM_QUERYENDSESSION 消息并自行关闭。跨度>

标签: c# windows


【解决方案1】:

我假设您使用的是 WinForms,因为您没有提到 WPF。如果要控制关闭行为,则不能使用 MessageBox。您必须构建自己的屏幕来充当消息框并使用 ShowDialog 方法来显示它。您的屏幕可以处理 FormClosing 事件以检测 Windows 何时关闭:

    private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (e.CloseReason == CloseReason.WindowsShutDown)
        {
            //...
        }
    }

因此,在这种情况下,您需要允许屏幕关闭,并可能对其他类型的关闭信号采取其他措施。要防止屏幕关闭,请将FormClosingEventArgs 参数上的取消标志设置为true;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 2018-02-18
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多