<分区>
我想在关闭表单之前显示一个 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;
}
}