当我点击主窗体中的按钮时,我希望在主窗体中打开另一个窗体。到目前为止,这使用以下代码:
private void btnOpenChildForm(object sender, EventArgs e)
{
ChildForm Form = new ChildForm();
this.IsMdiContainer = true;
Form.MdiParent = this;
Form.Show();
}
问题:
主窗体的按钮和其他控件仍可在子窗体中显示。我用Form.BringToFront()
试了一下,但它也没用。
更新
在决定更改GUI设计之后,这是我迄今为止所做的工作。我拿了一个ToolStripMenuItem而不是之前的按钮。
一个全局变量(我想我必须改进它)
ChildForm frmChildForm;
点击方法:
private void frmChildFormToolStripMenuItem_Click(object sender, EventArgs e)
{
if (frmChildForm == null || frmChildForm .IsDisposed == true)
{
frmChildForm = new ChildForm();
}
this.IsMdiContainer = true;
frmChildForm.MdiParent = this;
frmChildForm.WindowState = FormWindowState.Maximized;
frmChildForm.Show();
}
答案 0 :(得分:1)
我想,您需要使用Focus()
方法。
private void btnOpenChildForm(object sender, EventArgs e)
{
ChildForm Form = new ChildFrom();
this.IsMdiContainer = true;
Form.MdiParent = this;
Form.Show();
Form.focus();
}
答案 1 :(得分:1)
查看此示例可能会解决您的问题: http://www.codeproject.com/Questions/309232/Csharp-net-How-to-bring-a-MDI-child-form-to-the-fr
答案 2 :(得分:1)
就像我说的那样理想情况下,MDI应该只有菜单控件和状态栏,这就是MDI的意图。只是作为其他形式的容器而没有别的。
因此,如果您只想在父窗体上打开子窗体,请执行此操作(SDI方式)。
private void btnOpenChildForm(object sender, EventArgs e)
{
//if you just want the form to show on top do not make the MDI
ChildForm Form = new ChildForm();
Form.Show();
Form.Owner=this;
}
答案 3 :(得分:0)
您可以从http://www.codeproject.com/Articles/7571/Creating-MDI-application-using-C-Walkthrough尝试此操作:
ChildForm Form = ChildForm.GetChildInstance();
Form.MdiParent = this;
Form.Show();
Form.BringToFront();