2015-05-18 105 views
0

我想獲得一個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; 
    } 
} 

希望有人能搞清楚我要去的地方錯了。

艾丹

回答

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形式。

希望這可以幫助別人。

艾丹