Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MDI子窗体与MDI父窗体控件重叠_C#_Windows_Vb.net_Visual Studio_Winforms - Fatal编程技术网

C# 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

我有一个包含面板的MDI父窗体。该面板包括图表和一些其他用户信息。从菜单打开表单时,新打开的表单显示在MDI父面板下。 如何显示所有MDI父控件上面的子窗体。 我使用下面的代码打开表单

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将保持子项打开并返回到父项(前提是您在退出时不关闭子项)。