繁体   English   中英

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;
}

如果我不设置MDIParent,则该表单位于其自己的类库中。当我设置父表单时,该表单加载并停留在该表单上并显示一秒钟,然后它消失了。

我正在使用AutoFac基于动态菜单创建IoC构建菜单项,但无法使其正常工作。 我以我的主要形式持有此文件,然后应该获得正确的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中打开表单。

希望这可以帮助其他人。

爱丹

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM