c# - FormClosing() 事件加载了两次

标签 c# formclosing

<分区>

我想在关闭表单之前显示一个 MessageBox 以确认退出。因此,创建了一个 FormClosing 事件。

  private void Form_Main_FormClosing(object sender, FormClosingEventArgs e)
  {
     //nothing here for now
  }

我将 MessageBox 显示了两次。调试工具显示代码以某种方式遍历 FormClosing() 两次。即使我在 FormClosing() 中没有任何内容,也会发生这种情况。我确实在我的整个代码中搜索了 FormClosing(),但只有一个地方订阅了它。我在其他两个项目中有相同的 FormClosing() ,但这并没有发生。任何人都可以给我一个指针吗?这对我来说没有任何意义。

最佳答案

您不得在 FormClosing 事件处理程序中调用 Close 和 Dispose 方法

表单关闭代码应该是:

private void Form_Main_FormClosing(object sender, FormClosingEventArgs e)
  {
     DialogResult result = MessageBox.Show("EXIT?", "Exit Program", MessageBoxButtons.YesNo);

     if (result != DialogResult.Yes)
     {
          e.Cancel = true;
     }
  }

关于c# - FormClosing() 事件加载了两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10761916/

相关文章:

c# - 当另一个表单关闭时运行一些代码

c# - 从某些事件中取消表单关闭

c# - 为什么 DateTime.ToDateTime( ) 不能编译?

c# - 安装有效但无法运行该应用程序

c# - c# 应用程序的所有字符仅在一台计算机中显示为方 block 字符

vb.net - 正确关闭在新线程中运行循环的表单

C# MDI Parent 检测 MDI Child 何时关闭?

c# - 关闭我的应用程序会干扰我的 Form1_FormClosing 事件

C# 从委托(delegate)函数访问所有者对象

c# - 从类创建对象 ArrayList