我目前正在使用MDI Parent Form
,在其中我会点击Form
中的一个项目打开ToolStripMenuItem
。我有一个代码,允许我只打开一次该项目,而不是打开多个Forms
。
frmRegUser frm = null;
private void createToolStripMenuItem_Click(object sender, EventArgs e)
{
if (frm == null)
{
frm = new frmRegUser();
frm.MdiParent = this;
}
frm.WindowState = System.Windows.Forms.FormWindowState.Maximized;
frm.Show();
}
到目前为止一直很好,但是在关闭Form
内的MDI Parent Form
并尝试再次打开createToolStripMenuItem
后,它会显示错误
无法访问已处置的对象。对象名称:'frmRegUser'
然后我搜索了它并尝试使用frmRegUser closing event
内部代码放置此代码:
this.Hide();
this.Parent = null;
e.Cancel = true;
如果我也愿意,它也不会再打开表格。
你有什么想法我该如何解决这个问题?
答案 0 :(得分:2)
通过从this.Parent = null;
事件中删除frmRegUser_FormClosing
来解决问题。
答案 1 :(得分:0)
试试这个,确保在初始化之前将其处理掉:
if (frm == null || frm.IsDisposed)