使 Toolstripcontainer 面板像 MDI 父级一样工作

Pyr*_*yro 5 c# mdi toolstripcontainer

这是针对 C# 的,我在使用 Visual Studio Express 2010 的 Windows 7 环境中工作。我有一个应用程序,我在其中设置了一个工具条容器停靠栏来填充,以便用户可以在任何边缘添加工具条。问题是 toolstripcontainer 已经覆盖了我想用来保存子窗口的东西。包含 toolstripcontainer 的主窗体已设置为 mdi 父窗体。我发现这篇文章对于将子窗口放入容器很有用: 如何在 MDI 父级上使用带有 Dock=Fill 的 ToolStripContainer?

但是,以这种方式完成的子窗口在“本机”MDI 环境中的行为似乎并不像它们应有的那样。寄宿生看起来好像 Windows 7 Aero 效果已被禁用,最小化子窗口使其完全消失。

本质上,我想要一个 MDI 区域用于由工具条停靠区域包围的子窗口。

非常感谢你的帮助

Lar*_*ech 5

不幸的是,ToolStripContainer 控件并不打算与 MDI 表单一起使用。

尝试改用 ToolStripPanel 控件。它在设计器中效果不佳(这可能是默认情况下它不在 ToolBox 中的原因)。

例子:

public partial class Form1 : Form {

  public Form1() {
    InitializeComponent();

    this.IsMdiContainer = true;
    ToolStripPanel leftPanel = new ToolStripPanel() { Dock = DockStyle.Left };
    ToolStripPanel topPanel = new ToolStripPanel() { Dock = DockStyle.Top };
    this.Controls.Add(leftPanel);
    this.Controls.Add(topPanel);

    ToolStrip ts = new ToolStrip() { Dock = DockStyle.Fill };
    ToolStripButton tsb = new ToolStripButton("Test", SystemIcons.Application.ToBitmap());
    ts.Items.Add(tsb);

    topPanel.Controls.Add(ts);
  }
}
Run Code Online (Sandbox Code Playgroud)