[英]WinForm closes even after removing Close()
在VS 2010中,我的WinForms应用程序遇到了奇怪的行为。我使用简单的代码启动了一个新表单:
MainDisplayForm.cs:
using (MyForm myForm = new MyForm())
{
var result = myForm.ShowDialog();
if (result == DialogResult.OK)
{
// do stuff
}
}
我向MyForm添加了一个Cancel按钮,该按钮向用户显示确认MessageBox
,然后调用this.Close()
。 后来我删除了this.Close()
行,因为我添加了专用的“关闭”按钮。 但是,每当我按“取消”时,MyForm的实例仍然关闭!
MyForm.cs:
private void cmdCancel_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show( ... )
// clear the form if user really wants to quit
// this.Close()
// even after removing the above line, program still jumps to FormClosing
}
当我单击“取消”按钮后逐行调试时,程序流在到达MyForm_FormClosing
后仅跳至cmdCancel_Click
。 我创建了一个新按钮,并将其click事件设置为cmdCancel_Click
,但它没有关闭表单-因此问题得以解决 ,但是我仍然想知道这仅仅是一个bug还是其他? 我还确保将“取消”按钮的DialogResult
属性重置为“ None
(将其更改为“ Cancel
然后再引入专用的“关闭”按钮)。
退出“ using”语句的范围时,它将调用“ myForm.Dispose()”(这就是“ using”的全部要点-确保已调用Dispose())。 反过来,这会破坏“ myForm”实例,包括关闭窗口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.