我有一个简单的 winForm,想要使用关闭事件并将用户重定向到注销过程。注销过程由按钮单击事件处理。当用户按下注销按钮并选择“否”时,它将保留在页面上,用户可以继续使用该应用程序。在关闭事件中,我调用了注销按钮事件方法,但是当用户选择“否”时,窗口关闭并且程序仍在运行。我想知道发送到方法的事件是否不同,或者基本上是为什么会发生?
private void btnLogout_Click(object sender, EventArgs e) {
DialogResult result = MessageBox.Show("Do you want to logout?", "Logout", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes) {
this.Visible = false;
frmMain f = new frmMain();
f.Show();
else {
return;
} // end logout
private void Form2_FormClosing(object sender, FormClosingEventArgs e) {
btnLogout_Click(sender, e);
Note:此问题总结整理于: Handling Closing event in winForm by calling a button click event results in two different behaviour
首先,FormClosing 事件在窗体关闭时发生。关闭表单时,将释放该表单,释放与表单关联的所有资源。 因此,在 FormClosing 事件中,调用注销按钮事件方法,即使用户选择“否”,窗口也会关闭,程序仍在运行。 您可以将 FormClosingEventArgs 的 Cancel 属性设置为 true,以取消窗体的闭合。
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
button1_Click( sender, e);
e.Cancel = true;
这是您可以参考的有用文档。
如果回复有帮助,请点击“接受答案”并点赞。
注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。