本主题总结了有关 ToolStrip
控件和支持其用法的类的信息。
控件 ToolStrip
及其关联的类提供了用于创建工具栏、状态栏和菜单的完整解决方案。
命名空间
背景
ToolStrip
借助控件及其关联的类,可以创建具有一致且专业外观和行为的高级工具栏功能。 控件 ToolStrip
和类对以前的控件提供以下改进:
更一致的事件模型。
包含任务列表和项集合编辑器的更一致的设计时行为。
使用
ToolStripManager
和ToolStripRenderer
进行自定义呈现。内置漂流功能(在停靠时工具区域内共享水平或垂直空间)与
ToolStripContainer
和ToolStripPanel
一起使用。可以在设计时和运行时使用AllowItemReorder属性对项目进行重新排序。
将项目重新定位到使用CanOverflow属性的溢出菜单。
具有
ToolStripContainer
、ToolStripPanel
和ToolStripContentPanel
的完全可配置控制位置。使用
ToolStripControlHost
托管ToolStrip
、传统控件或自定义控件。使用
ToolStripPanel
合并ToolStrip
控件。
ToolStrip
是MenuStrip
、ContextMenuStrip
和StatusStrip
的可扩展基类。 这些控件是 ToolStripItem 继承常见行为和事件处理的容器,这些容器经过扩展,以便每个实现处理适合它的行为。 下表列出了派生自 ToolStripItem 的控件。 基 ToolStrip
类处理这些控件的绘制、用户输入和拖放事件。
虽然为实现向后兼容性保留了旧的工具栏、菜单、快捷菜单和状态栏控件,但ToolStrip
、MenuStrip
、ContextMenuStrip
和StatusStrip
分别替代了这些控件。
ToolStrip 类概览
下表显示了按技术区域分组的 ToolStrip 类。
ToolStrip Design-Time 功能
控件 ToolStrip 系列提供了一组丰富的工具和模板,用于就地编辑和定义用户界面的基础,以便快速创建工作应用程序。
“任务”对话框
在 Visual Studio 中,单击设计器中控件上的智能标记会显示任务列表,方便访问许多常用命令。
项目集合编辑器
在 Visual Studio 中,单击任务列表中的 “编辑项 ”或右键单击该控件并选择快捷菜单中的 “编辑项 ”时,将显示控件的集合编辑器。 集合编辑器允许添加、删除和重新排序控件包含的项。 还可以查看和更改控件和控件项的属性。
托管控件
该ToolStripControlHost类提供ToolStripComboBox、ToolStripTextBox和ToolStripProgressBar控件的内置包装器。 您还可以在 ToolStripControlHost 中托管任何已存在的控件或 COM 控件。
有关控件托管的示例,请参阅 “如何:使用 ToolStripControlHost 包装 Windows 窗体控件”。
渲染
ToolStrip 类实现与其他 Windows 窗体控件截然不同的呈现方案。 使用此方案,可以轻松应用样式和主题。
若要将样式应用于 ToolStrip 和它包含的所有 ToolStripItem 对象,无需为每个项处理 Paint 事件。 相反,可以将RenderMode属性设置为ToolStripRenderMode中的一个值,而非Custom。 或者,可以直接设置 Renderer 为从 ToolStripRenderer 类继承的任何类。 设置此属性会自动设置 RenderMode。
可以通过在同一应用中将RenderMode设置为ManagerRenderMode,并将RenderMode或Renderer属性分别设置为您需要的ToolStripManagerRenderMode对象或ToolStripRenderer值,来将相同样式应用于多个ToolStrip对象。
有关呈现的示例,请参阅 如何:为 Windows Forms 的 ToolStrip 控件创建和设置自定义呈现器。
样式和主题
ToolStrip 和关联的类提供了一种简单的方法来支持视觉样式和自定义外观,这些样式不需要覆盖 OnPaint 每个项的方法。 使用DisplayStyle、RenderMode和Renderer属性。
漂流和停靠
你可以浮动、停靠或绝对定位 ToolStrip 控件。 ToolStrip 项按照 LayoutEngine 容器的布局方式排列。
漂流 是工具栏共享水平或垂直空间的能力。 Windows 窗体可以包含一个ToolStripContainer,该ToolStripContainer在窗体的左侧、右侧、顶部和底部都有面板,用于定位和分组ToolStrip、MenuStrip和StatusStrip控件。 如果将多个 ToolStrip 控件放置在左侧或右侧的 ToolStripContainer中,它们会垂直堆叠。 如果将其放置在 ToolStripContainer 顶部或底部,则水平堆叠。 可使用 ToolStripContentPanel 的中央 ToolStripContainer 将传统控件放置在窗体上。
任何或所有 ToolStripContainer 控件都可以在设计时直接选择,并且可以删除。 A ToolStripContainer 是可展开和可折叠的,并且会根据其包含的控件调整大小。
停靠 是在窗体的左侧、右侧、顶部或底部指定控件的简单位置。
漂流相较于停靠的优点在于,ToolStrip、MenuStrip和StatusStrip控件可以与其他控件共享水平或垂直空间。
ToolStrip大多数控件都可以像其他控件一样停靠在窗体上,而不是使用浮动。 可以通过将控件从ToolStripContainer中移除并设置其Dock
属性为None
来实现控件在窗体上的自由定位,或者可以通过设置相应的Location属性来指定控件的绝对位置。 请参阅 方法:如何将 ToolStrip 从 ToolStripContainer 移到窗体上。
使用一个或多个ToolStripPanel控件来提高灵活性,尤其是对于多文档界面应用程序(MDI),或者如果你不需要ToolStripContainer控件。 A ToolStripPanel 提供了一个可停靠的空间用于定位和移动 ToolStrip 控件,但不支持传统控件。 默认情况下, ToolStripPanel 设计器 工具箱中不显示,但你可以通过右键单击工具箱将其放在该 工具箱中,然后单击“ 选择项”。 您还可以像访问任何其他类一样,以编程方式访问 ToolStripPanel。
ToolStrip MenuStrip和StatusStrip使项目溢出。 这类似于这些项在 office 工具栏Microsoft的行为方式。