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

时间:2012-03-29 13:49:30

标签: c# mdi toolstripcontainer

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

但是,以这种方式完成的子窗口似乎在“本机”MDI环境中的行为不正常。看起来好像已经禁用了Windows 7 Aero效果,并且最小化子窗口使它完全消失。

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

非常感谢你的帮助

1 个答案:

答案 0 :(得分:4)

不幸的是,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);
  }
}