C# MDI子窗体未保持打开状态

C# MDI子窗体未保持打开状态,c#,autofac,mdi,C#,Autofac,Mdi,我试图在单击菜单条项时显示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 = FormSta

我试图在单击菜单条项时显示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;
}
表单在它自己的类库中,如果我没有设置窗体加载的MDI父对象,并且在设置它显示的父对象时保持不动,那么它就消失了

我正在使用AutoFac根据生成菜单项,但无法使其正常工作。 我有我的主要形式,然后应该得到正确的父母在

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 open按钮时,它会在MDI父级中打开表单

希望这能帮助其他人

艾丹