繁体   English   中英

即使删除Close(),WinForm也会关闭

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM