winforms 关闭表单按钮事件

ctzwtxfj  于 2022-12-14  发布在  其他
关注(0)|答案(5)|浏览(139)

在我的应用程序中,首先向用户显示登录屏幕,登录后显示的窗体有一个菜单栏。
菜单栏上有两个项目:“注销”和“退出”。如果用户选择注销选项,我希望它返回到前面提到的登录屏幕。如果用户决定单击“退出”,我提示用户是否确定要退出。
不幸的是,当用户决定通过单击窗口上的“X”按钮来关闭程序时,它只关闭当前表单。我的意图是让它关闭整个 * 应用程序 *。
基本上,如何通过拦截窗体关闭事件来退出当前应用程序?
Logout 项下,试纸条代码为:

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 the programme ?","Exit",MessageBoxButtons.OKCancel)== DialogResult.OK)
     {
         Application.Exit();
     }
 }

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

niknxzdl

niknxzdl1#

这将处理单击[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;
   }
}
ycggw6v2

ycggw6v22#

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

c0vxltue3#

如果我没有猜错的话:

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

xlpyo6sf4#

将下面的代码应用到您希望使代码退出应用程序的位置。

System.Windows.Forms.Application.Exit()
holgip5t

holgip5t5#

试试这个:

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

相关问题