ToolStripContainer 工具条容器控件
ToolStripContainer 是一个工具条容器控件,它提供了四个方向的停靠区域(上、下、左、右),中间是主内容区域。

基本结构
拖拽 ToolStripContainer 到窗体后,会自动生成五个区域:
| 区域 | 说明 |
|---|---|
TopToolStripPanel | 顶部停靠区 |
BottomToolStripPanel | 底部停靠区 |
LeftToolStripPanel | 左侧停靠区 |
RightToolStripPanel | 右侧停靠区 |
ContentPanel | 中间主内容区域 |
基本使用
将 ToolStrip 拖入 ToolStripContainer 的某个方向面板中,运行后用户可以拖动工具条到不同的边上,自由切换停靠位置。
// 后台将 ToolStrip 添加到顶部面板
this.toolStripContainer1.TopToolStripPanel.Controls.Add(this.toolStrip1);Code language: JavaScript (javascript)
常用属性
| 属性 | 说明 |
|---|---|
TopToolStripPanel | 顶部工具条面板 |
BottomToolStripPanel | 底部工具条面板 |
LeftToolStripPanel | 左侧工具条面板 |
RightToolStripPanel | 右侧工具条面板 |
ContentPanel | 中间内容面板,放置主控件 |
TopToolStripPanelVisible | 是否显示顶部面板 |
BottomToolStripPanelVisible | 是否显示底部面板 |
LeftToolStripPanelVisible | 是否显示左侧面板 |
RightToolStripPanelVisible | 是否显示右侧面板 |
this.toolStripContainer1.TopToolStripPanelVisible = true;
this.toolStripContainer1.LeftToolStripPanelVisible = true;
this.toolStripContainer1.RightToolStripPanelVisible = false; // 隐藏右侧
this.toolStripContainer1.BottomToolStripPanelVisible = false; // 隐藏底部Code language: JavaScript (javascript)
在 ContentPanel 中添加主控件
// 将 RichTextBox 放入中间内容区
this.richTextBox1.Dock = DockStyle.Fill;
this.toolStripContainer1.ContentPanel.Controls.Add(this.richTextBox1);Code language: JavaScript (javascript)
运行时拖放
运行后,用户可以:
- 拖动 ToolStrip 到四个方向面板中的任意一个
- 拖动到同一面板的不同位置重新排列
注意:ToolStrip 的
GripStyle需设为Visible(默认),否则无法拖动。
this.toolStrip1.GripStyle = ToolStripGripStyle.Visible; // 显示左侧手柄,允许拖动Code language: JavaScript (javascript)
与 ToolStrip 配合的布局体系
| 控件 | 用途 |
|---|---|
ToolStrip | 工具条本身 |
MenuStrip | 菜单栏(也可放入 ToolStripContainer 中) |
StatusStrip | 状态栏(通常放在底部面板) |
ToolStripContainer | 提供可拖放的停靠容器 |
典型布局示例
// MenuStrip 放在顶部
this.toolStripContainer1.TopToolStripPanel.Controls.Add(this.menuStrip1);
// ToolStrip 放在顶部(MenuStrip 下方)
this.toolStripContainer1.TopToolStripPanel.Controls.Add(this.toolStrip1);
// StatusStrip 放在底部
this.toolStripContainer1.BottomToolStripPanel.Controls.Add(this.statusStrip1);
// 主编辑区放入 ContentPanel
this.toolStripContainer1.ContentPanel.Controls.Add(this.richTextBox1);Code language: JavaScript (javascript)
注意事项
ToolStripContainer本身是一个容器,不能直接当作普通 Panel 使用- 中间
ContentPanel才是放置主工作区控件的地方 - 如果不需要拖放功能,直接用
Dock布局 + 普通Panel即可,不需要使用ToolStripContainer - 多个
ToolStrip可以放在同一个方向面板中,垂直排列
Previous: 上一篇文章
Next: ToolTip 工具提示控件