MDI儿童表格不开放

时间:2015-05-18 08:36:59

标签: 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 = FormStartPosition.CenterParent;
}

如果我没有设置表格加载的MDIParent,并且当我将其显示的父级设置为瞬间,那么表单就在其自己的类库中。然后它就消失了。

我正在使用AutoFac来构建基于Dynamic menu creation IoC的菜单项,但无法使其生效。 我在我的主要表单中有这个,然后应该得到正确的MDIParent。

public MDIParent1 Parent
{
   get 
     { 
        return this; 
     }
}

希望有人能弄明白我的错误。

1 个答案:

答案 0 :(得分:0)

经过一些试验和错误后计算出来。

在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中的表单。

希望这有助于其他人。