欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2018.2.8 为什么调用了this.close()却无法关闭窗口

程序员文章站 2022-07-13 23:17:58
...

先说原因:窗体的FormClosing事件中有阻止窗体关闭的代码。

private void btnClose_Click(object sender, EventArgs e)
{
        this.Close();            
}
/// <summary>
/// 关闭窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FormZDT_FormClosing(object sender, FormClosingEventArgs e)
{
        ReleaseComObject(this.objZDRegion);
        objZDRegion = null;
        objSupermap.Refresh();
}

通过Debug,可以看到,单击关闭按钮btnClose后调用this.Close();,之后发生FormClosing事件,执行此事件中的代码。我发现,2018.2.8 为什么调用了this.close()却无法关闭窗口此代码中objSupermap为null,自然无法Refresh();,错误就出在这,但是不知为什么编译器并没有报错,只表现为无法关闭窗体。

于是更改:

private void btnClose_Click(object sender, EventArgs e)
{
        this.Close();            
}
/// <summary>
/// 关闭窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FormZDT_FormClosing(object sender, FormClosingEventArgs e)
{
        ReleaseComObject(this.objZDRegion);
        objZDRegion = null;
        if(objSupermap != null)
        {
            objSupermap.Refresh();
        }
}

解决。
相关标签: C#