2017-10-28 218 views
0

我有点麻烦了。我有一个MDI.Parent窗体,里面有一些蓝色的面板。当我打电话给我的孩子表格时,孩子表格落在蓝色面板后面。我没有想到这一点,因为面板已经在运行时存在,而子窗体被称为后者(我虽然新的项目总是在最上面)。vb.net子窗体落在父窗体内面板控件后面

我该如何解决这个问题...我使用Vb.net为此

+0

MDI是旧的...通过'Me.Controls.Add(yourForm)'直接添加子窗体作为控件。 –

+0

您必须将面板停靠在父项的边缘。 –

回答

2

没有什么可以解决的。这是它的工作方式。

当您将IsMdiContainer表单的IsMdiContainer属性设置为True时,实际发生的是MdiClient控件被添加到表单中以充当子表单的主机。你看到的灰色背景实际上是控制,而不是形式。当您向父项添加MDI子窗体时,将成为该MdiClient的子控件。

如果您要添加GroupBox到您的形式,把一个Panel了它,然后添加一个ButtonGroupBox,你会期望Button到过Panel可见?我希望不会,因为它不会。这也不例外。

子窗体基本上是MdiClient控件的一部分,所以覆盖子窗体的任何东西都可以。如果你试图做别的事,那么你滥用MDI。您可以添加​​并将它们停靠在父窗体的边缘,但不应该有浮动控件。

用一点jiggery-pokery可以显示一个Image作为背景或绘制渐变等,但MdiClient并非设计用于托管表单以外的其他控件,因此您无法将控件添加到它。

+0

Jmcilhinney有道理。我试过的另一件事是创建一个载入蓝色面板的子窗体,然后像以前一样加载“钢笔样式”窗体。虽然这种剂量的工作,我需要新的儿童形式最大化,但这导致我的“笔式”儿童也成为最大化的争议设置其最小和最大尺寸相等到260; 300 ....? –