7

在我的应用程序中,用户首先看到登录屏幕,登录后显示的表单有一个菜单栏。该菜单栏上有两个项目:“注销”和“退出”。如果用户选择注销选项,我希望它返回到上述登录屏幕。如果用户决定单击“退出”,我会提示用户是否确定要退出。不幸的是,当用户决定通过单击窗口上的“X”按钮来关闭程序时,它只会关闭当前表单。我的意图是关闭整个应用程序。

基本上,我需要知道如何通过拦截表单关闭事件来退出当前应用程序。

在注销项目条码是:

 private void logoutToolStripMenuItem_Click(object sender, EventArgs e)
 {
     Form_Login log = new Form_Login();
     this.Close();
     log.Show();
 }

在退出项目条码是:

 private void exitToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("Are You Sure To Exit Programme ?","Exit",MessageBoxButtons.OKCancel)== DialogResult.OK)
     {
         Application.Exit();
     }
 }

当我单击退出按钮时,它会关闭当前表单,我想关闭整个应用程序

4

6 回答 6

18

这应该处理单击 [x] 或 ALT+F4 的情况

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
   if (e.CloseReason == CloseReason.UserClosing)
   {
      DialogResult result = MessageBox.Show("Do you really want to exit?", "Dialog Title", MessageBoxButtons.YesNo);
      if (result == DialogResult.Yes)
      {
          Environment.Exit(0);
      }
      else 
      {
         e.Cancel = true;
      }
   }
   else
   {
      e.Cancel = true;
   }
}   
于 2013-07-22T19:50:38.297 回答
2

如果我没有错

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
   //You may decide to prompt to user
   //else just kill
   Process.GetCurrentProcess().Kill();
} 
于 2013-07-22T19:56:21.633 回答
2
private void mainForm_FormClosing(object sender, FormClosingEventArgs e)
{
    if (MessageBox.Show("This will close down the whole application. Confirm?", "Close Application", MessageBoxButtons.YesNo) == DialogResult.Yes)
    {
        MessageBox.Show("The application has been closed successfully.", "Application Closed!", MessageBoxButtons.OK);
        System.Windows.Forms.Application.Exit();
    }
    else
    {
        this.Activate();
    }  
}
于 2017-02-18T08:56:36.853 回答
1

在您要制作代码的地方应用以下代码以退出应用程序。

System.Windows.Forms.Application.Exit()

于 2018-12-17T17:20:14.023 回答
0

Try This: Application.ExitThread();

于 2019-07-11T11:45:30.740 回答
-1

尝试这个:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    // You may decide to prompt to user else just kill.
    Process.GetCurrentProcess().Goose();
} 
于 2016-02-08T20:31:41.760 回答