C# MDI子窗体与MDI父窗体控件重叠
我有一个包含面板的MDI父窗体。该面板包括图表和一些其他用户信息。从菜单打开表单时,新打开的表单显示在MDI父面板下。 如何显示所有MDI父控件上面的子窗体。 我使用下面的代码打开表单C# MDI子窗体与MDI父窗体控件重叠,c#,windows,vb.net,visual-studio,winforms,C#,Windows,Vb.net,Visual Studio,Winforms,我有一个包含面板的MDI父窗体。该面板包括图表和一些其他用户信息。从菜单打开表单时,新打开的表单显示在MDI父面板下。 如何显示所有MDI父控件上面的子窗体。 我使用下面的代码打开表单 SalesInvoice sale = new SalesInvoice(); sale.MdiParent = this; sale.Show(); 首先,在子窗体属性中的FormBorderStyle属性中,选择(无) 第二,替换代码以将子窗体显示给此: Sale.StartPosition = FormS
SalesInvoice sale = new SalesInvoice();
sale.MdiParent = this;
sale.Show();
首先,在子窗体属性中的FormBorderStyle属性中,选择(无) 第二,替换代码以将子窗体显示给此:
Sale.StartPosition = FormStartPosition.Manual
Sale.Left = 200
Sale.Top = 115
Sale.MdiParent = Me
Sale.Show()
您可以将(200)和(115)更改为所需的方向。您可以在显示表单时使表单最大化
SalesInvoice sale = new SalesInvoice();
sale.MdiParent = this;
sale.Show();
请参考以下代码
private void button1_Click(object sender, EventArgs e)
{
SalesInvoice sale = new SalesInvoice();
sale.MdiParent = this;
sale.Show();
sale.WindowState = FormWindowState.Maximized;
}
您正在将该面板添加到MdiClient窗体中,而子窗体则添加到MdiClient容器中。您的面板将始终位于其他控件的顶部。您可以使用无边界、停靠的子窗体。或者完全想出另一种布局。你需要对接面板。一旦停靠,MDI子窗体将正确地占用所有剩余空间。@Idle\u请注意,如果将面板停靠在MDI父窗体内(当然不能将其停靠在MdiClient内),还需要
SendToBack()
MenuStrip、ToolStrip和StatusStrip,否则面板将重叠它们。mdi子窗体无论如何都会放在面板下(因为它们仍然在较低的层次结构中)。这是使用Show()和ShowDialog()的区别。ShowDialog()将阻止操作系统并等待子窗体关闭,然后返回父窗体。Show将保持子项打开并返回到父项(前提是您在退出时不关闭子项)。