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

C# 使Toolstripcontainer面板像MDI父级一样工作,c#,mdi,toolstripcontainer,C#,Mdi,Toolstripcontainer,这是为C#编写的,我正在使用Visual Studio Express 2010在Windows 7环境中工作。 我有一个应用程序,其中有一个toolstripcontainer dock设置为填充,因此用户可以在任何边缘添加toolstrips。问题是toolstripcontainer已经覆盖了我想要用来保存子窗口的。包含toolstripcontainer的主窗体已设置为mdi父级。 我发现本文在将子窗口放入容器中时很有用: 但是,以这种方式完成的子窗口在“本机”MDI环境中的行为似乎不

这是为C#编写的,我正在使用Visual Studio Express 2010在Windows 7环境中工作。 我有一个应用程序,其中有一个toolstripcontainer dock设置为填充,因此用户可以在任何边缘添加toolstrips。问题是toolstripcontainer已经覆盖了我想要用来保存子窗口的。包含toolstripcontainer的主窗体已设置为mdi父级。 我发现本文在将子窗口放入容器中时很有用:

但是,以这种方式完成的子窗口在“本机”MDI环境中的行为似乎不正常。寄宿生看起来好像Windows7的空气动力学效果已经被禁用,最小化子窗口会使其完全消失

基本上,我希望子窗口有一个MDI区域,周围有toolstrip停靠区域


非常感谢您的帮助

不幸的是,ToolStripContainer控件不适用于MDI表单

尝试改用ToolStripPanel控件。它在设计器中工作得不太好(这可能是它默认不在工具箱中的原因)

例如:

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);
  }
}

我在表单设计器代码中实现了这一点,结果非常好。非常感谢你的帮助!