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;
}
表单在它自己的 Class 库中,如果我不设置 MDIParent,表单会加载并在我设置父级时保持不变,它显示一瞬间然后就消失了。
我正在使用 AutoFac 基于 构建我的菜单项,但无法使其正常工作。
我的主表单中有这个,然后应该在其中获取正确的 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 中打开表单。
希望这对其他人有所帮助。
艾丹
我正在尝试让 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;
}
表单在它自己的 Class 库中,如果我不设置 MDIParent,表单会加载并在我设置父级时保持不变,它显示一瞬间然后就消失了。
我正在使用 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 打开按钮时,它会在 MDIParent 中打开表单。
希望这对其他人有所帮助。
艾丹