2015-05-18 2 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; 
    } 
} 

Надежда кто-то может понять, где я неправильно.

Aidan

ответ

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.

Надеюсь, что это поможет кому-то еще.

Aidan

Смежные вопросы