【问题标题】:Controls on an MDI parent backgroundMDI 父背景上的控件
【发布时间】:2009-02-09 13:14:54
【问题描述】:

将控件放置在 MID 父窗口的背景上是个好主意吗?我在 MDI 窗口中添加了一个拆分容器,该窗口按预期显示,但是当我尝试在同一窗口中打开任何其他表单时,它们显示在 SplitContainer 后面。让它们弹出的唯一方法是如果我使用 ShowDialog 来显示它们。不幸的是,我需要能够同时打开多个窗口,所以这不是一个实用的解决方案。

我是不是走错了路?

【问题讨论】:

    标签: vb.net winforms visual-studio-2005


    【解决方案1】:

    您不能添加任何覆盖 MDI 客户端窗口(深灰色背景)的控件。 MDI 客户端以客户端窗口作为父窗口显示,因此它们的 Z 顺序低于控件。

    WF 确实支持停靠控件,它会自动将客户区调整为父窗体中的剩余空间。但仅此而已,SplitContainer 无法工作。

    请注意,您可以在 SplitContainer 的面板上显示表单。将它们的 TopLevel 属性设置为 False,以便它们变成控件。例如:

      public partial class Form1 : Form {
        public Form1() {
          InitializeComponent();
          Form2 f2 = new Form2();
          f2.TopLevel = false;
          f2.FormBorderStyle = FormBorderStyle.None;
          f2.Visible = true;
          splitContainer1.Panel1.Controls.Add(f2);
        }
      }
    

    【讨论】:

      猜你喜欢
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      • 2020-10-12
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多