gpt4 book ai didi

c# - 如何取消关闭winform?

转载 作者:行者123 更新时间:2023-12-05 08:18:55 24 4
gpt4 key购买 nike

当关闭表单时,FormClosed 事件发生,我想在 FormClosed 事件发生时做一些工作,例如:

this.FormClosed += (s, e) => {
var result = MessageBox.Show("Exit Program?", "Exit?", MessageBoxButtons.YesNo, MessageBoxIcons.Question);
if (result == DialogResult.No) {
return;
} else {
// Do some work such as closing connection with sqlite3 DB
Application.Exit();
}
};

问题是无论我在消息框中选择是还是否,程序都会关闭。如果我选择否,我需要中止程序退出,那么我该怎么做呢?

最佳答案

FormClosing(与您的 FormClosed 相对)事件的 FormClosingEventArgs 包含您可以更改的 Cancel bool 值为真。请注意,即使您以编程方式关闭表单,也会发生这种情况。

this.FormClosing += (s, e) => {
var result = MessageBox.Show("Exit Program?", "Exit?", MessageBoxButtons.YesNo, MessageBoxIcons.Question);
if (result == DialogResult.No) {
e.Cancel = true;
} else {
// Do some work such as closing connection with sqlite3 DB
Application.Exit();
}
};

为了确定表单是如何关闭的,它还包含一个 CloseReason。请参阅文档 herehere .

关于c# - 如何取消关闭winform?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47788288/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com