这是针对C#的,我正在使用Visual Studio Express 2010的Windows 7环境中工作。我有一个应用程序,其中设置了一个要填充的toolstripcontainer dock,这样用户就可以在任何边缘添加toolstrip。问题是toolstripcontainer已经覆盖了我想要用来容纳子窗口的内容。包含toolstripcontainer的主窗体已设置为mdi父窗体。我发现这篇文章有助于将子窗口放入容器:如何在MDI父级上使用Dock=Fill的ToolStripContainer?
然而,以这种方式完成的子窗口似乎并不像在"本机"MDI环境中那样运行。寄宿生看起来就像窗户7 Aero效果已经被禁用,最小化子窗口使其完全消失。
从本质上讲,我想要一个由toolstrip停靠区域包围的子窗口的MDI区域。
非常感谢您的帮助
不幸的是,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);
}
}