【问题标题】:Preventing Windows from shutting down防止 Windows 关闭
【发布时间】:2017-09-27 19:57:10
【问题描述】:

我正在使用 windows 窗体,如果用户尝试关闭 windows 或尝试在进程完成之前关闭应用程序,我想向用户显示进程未完成的消息(用户忘记完成过程),如果用户按 OK 我想停止窗口关闭并让用户完成该过程,我确实在网上找到了一些代码来这样做,但它是在 VB 中而不是在 c#中

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (e.CloseReason.Equals(CloseReason.WindowsShutDown))
    {
        Microsoft.VisualBasic.Interaction.Shell("shutdown -a", AppWinStyle.MinimizedFocus, false, -1);
        MessageBox.Show("Shutdown process cancelled!");
    }
}

【问题讨论】:

  • 这没什么大不了的,您可以在 C# 项目中包含参考 Microsoft.VisualBasic。
  • 右键单击您的项目的引用 -> 添加引用 -> 打开 .NET 选项卡 -> 找到 Microsoft.VisualBasic -> 单击确定

标签: c# winforms


【解决方案1】:

最好改用这段代码 sn-p,根据您的要求使用e.Cancel

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (e.CloseReason.Equals(CloseReason.WindowsShutDown))
    {
       if (MessageBox.Show("You are closing this app.\n\nAre you sure you wish to exit ?", "Warning: Not Submitted", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop) == DialogResult.Yes)
           return;    
       else    
           e.Cancel = true;
    }
}

参考:SystemEvents.SessionEnding Event

在用户尝试注销或关闭系统时发生。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多