关闭表单按钮事件

时间:2013-07-22 19:48:37

标签: c# winforms

在我的应用程序中,首先向用户显示登录屏幕,登录后显示的表单有一个菜单栏。在该菜单栏上有两个项目:“注销”和“退出”。如果用户选择注销选项,我希望它返回上述登录屏幕。如果用户决定单击“退出”,我会提示用户是否确定要退出。不幸的是,当用户通过单击窗口上的“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();
     }
 }

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

6 个答案:

答案 0 :(得分:13)

这应该处理点击[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;
   }
}   

答案 1 :(得分:2)

如果没有错误

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
   //You may decide to prompt to user
   //else just kill
   Process.GetCurrentProcess().Kill();
} 

答案 2 :(得分:1)

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();
    }  
}

答案 3 :(得分:0)

将以下代码应用到要使代码退出应用程序的位置。

System.Windows.Forms.Application.Exit()

答案 4 :(得分:0)

尝试一下: Application.ExitThread();

答案 5 :(得分:-1)

试试这个:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    // You may decide to prompt to user else just kill.
    Process.GetCurrentProcess().Goose();
}