MDI 子窗体未保持打开状态

MDI child form not staying open

我正在尝试让 MDI 子窗体在我单击菜单条项时显示

MDIParent1 parent = new MDIParent1();
public void NewForm(object sender, System.EventArgs e)
{
    Form3 childForm = new Form3();
    childForm.Show();
    childForm.MdiParent = parent.Parent;
    childForm.StartPosition = FormStartPosition.CenterParent;
}

表单在它自己的 Class 库中,如果我不设置 MDIParent,表单会加载并在我设置父级时保持不变,它显示一瞬间然后就消失了。

我正在使用 AutoFac 基于 构建我的菜单项,但无法使其正常工作。 我的主表单中有这个,然后应该在其中获取正确的 MDIParent。

public MDIParent1 Parent
{
   get 
     { 
        return this; 
     }
}

希望有人能指出我哪里出错了。

艾丹

经过反复试验弄明白了。

在我必须添加的 IMenuContainer 中

MDIParent1 Parent { get; }

然后在我的 ClassMenuBuilder 中我不得不

 MDIParent1 parent = new MDIParent1();
 public void BuildMenu(IMenuContainer container)
 {
    parent = container.Parent;
 } 

 public void NewForm(object sender, System.EventArgs e)
 {
    Form3 childForm = new Form3();
    childForm.MdiParent = parent.Parent;
    childForm.StartPosition = FormStartPosition.CenterParent;
    childForm.Show();
 }

现在,当我单击 Form3 打开按钮时,它会在 MDIParent 中打开表单。

希望这对其他人有所帮助。

艾丹