我有两种形式; Form 1和Form 2。在Form 1中,有一个MenuStrip和一个按钮。单击该按钮时,Form 2将显示在Form 1按钮的下方。
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.MdiParent = this;
frm.StartPosition = FormStartPosition.CenterScreen;
frm.WindowState = FormWindowState.Maximized;
frm.Show();
}
2条答案
按热度按时间ulydmbyx1#
MDI容器中的子窗体始终位于直接放置在MDI容器上的其他控件的下面:
如果您将Form移动到菜单下,您也会看到相同的行为,不过由于MenuStrip是停靠的,您应该会看到滚动条,可以查看整个Form。
将按钮合并到MenuStrip上:
或将其停靠在某个边缘:* (这看起来很荒谬,但这只是为了演示;例如,您可以停靠面板并将其移动到其中,或者使用ToolStrip进行操作)*
vulvrdjw2#
当您将
IsMdiContainer
设置为true
时。表单自动将System.Windows.Forms.MdiClient添加到ParentForm.Controls
中。它通常在添加所有停靠控件之后添加。所以,它出现在按钮下面.您可以取消停靠此MDI容器。您可以自定义它。只有在代码中才有可能。就像:-这样,就不能更改父窗体的背景。但是如果您手动添加此MDI容器,则可以这样做。然后,您不能将
Form.MdiParent
设置为ParentForm
。你得手动写。就像:-