【问题标题】:vb.net child form falls behind panel control inside parent formvb.net 子窗体落后于父窗体内的面板控件
【发布时间】:2017-10-28 08:02:20
【问题描述】:

我有点麻烦。我有一个 MDI.Parent 表格,里面有一些蓝色的面板。当我调用我的子表单时,子表单位于蓝色面板后面。我没想到这是因为面板在运行时已经存在,而子表单被称为后者(我认为新项目总是在顶部)。

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

【问题讨论】:

  • MDI 已旧...直接将子窗体添加为控件,而不是通过Me.Controls.Add(yourForm)
  • 您必须将面板停靠在父面板的边缘。

标签: vb.net panel mdichild mdiparent


【解决方案1】:

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

当您将表单的IsMdiContainer 属性设置为True 时,实际发生的情况是将MdiClient 控件添加到您的表单中以充当子表单的宿主。您看到的灰色背景实际上是那个控件,而不是表单。当您将 MDI 子窗体添加到父窗体时,它会成为该 MdiClient 的子控件。

如果您要在表单中添加GroupBox 并在其上放置Panel,然后在GroupBox 中添加Button,您是否希望Button 在@987654330 上可见@?我希望不会,因为它不会。这也不例外。

子窗体基本上是MdiClient 控件的一部分,因此任何覆盖子窗体的内容也都包含在内。如果你试图不这样做,那么你就是在滥用 MDI。您可以添加 Panels 并将它们停靠在父窗体的边缘,但您不应该有浮动控件。

通过一些诡计,您可以将Image 显示为背景或绘制渐变等,但MdiClient 并非设计用于承载表单以外的控件,因此您无法向其添加控件要么。

【讨论】:

  • 说得有道理。我尝试过的另一件事是在加载时创建一个包含蓝色面板的子表单,然后像以前一样加载“笔样式”表单。尽管此剂量有效,但我需要最大化新的子窗体,但这会导致我的“笔样式”子窗体也变得最大,争议将其最小和最大尺寸设置为 260;300....?
猜你喜欢
  • 1970-01-01
  • 2021-01-29
  • 2015-05-02
  • 2012-03-24
  • 2016-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-10
相关资源
最近更新 更多