处置第二次不处理表格?

时间:2010-07-13 13:26:29

标签: c# winforms dispose

我使用这种方法根据他们的Id关闭表单,但如果我打开一个带有Id 2的表单,关闭它一次,它工作正常,但如果我再次用Id 2打开一个表单,它不会关闭表格(表格只停留在屏幕上)。我不知道发生了什么,迫切需要帮助。谢谢!

public void OutsideClose(long Id)
{
    if (InvokeRequired)
    {
        Invoke(new Action<long>(OutsideClose), Id);
    }
    else
    {
        var FormToClose = ListForms.Find(a=> a.Id == Id);
        if(FormToClose != null)
        {
            FormToClose.Dispose();
            OpenForms.Remove(Id);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

好的,我很笨! 我正在处理表单,但我没有从列表中删除它。现在我添加了一行代码,现在它已经修复了。

编辑:感谢Jon让我仔细查看代码(特别是两个列表)