表单关闭时的MessageBox

Fed*_*l09 7 c# formclosing

我在关闭应用程序之前使用此代码进行提问,但它无法正常工作.
我的代码如下.

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
   DialogResult dlgresult = MessageBox.Show("Exit or no?",
                               "My First Application",
                               MessageBoxButtons.YesNo,
                               MessageBoxIcon.Information);
   if (dlgresult == DialogResult.No)
   {
      e.Cancel = true;

   }
   else
   {
     Application.Exit();
   }
}
Run Code Online (Sandbox Code Playgroud)

Tur*_*bot 17

您不需要显式调用,Application.Exit()因为您处于FormClosing事件中,这意味着已触发Closing请求(例如,单击表单按钮上的十字形this.Close()).您只需要拦截结束请求并指出e.Cancel = true;

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if(MessageBox.Show("Exit or no?",
                       "My First Application",
                        MessageBoxButtons.YesNo,
                        MessageBoxIcon.Information) == DialogResult.No) {
        e.Cancel = true;
    }
}
Run Code Online (Sandbox Code Playgroud)