ToolStrip

ToolStrip
ToolStrip,Visual Basic 2005的一个新成员!

使用 ToolStrip 及其关联的类,可以创建具有 Microsoft® Windows® XP、Microsoft Office、Microsoft Internet Explorer 或自定义的外观和行为的工具栏及其他用户界面元素。这些元素支持溢出及运行时项重新排序。ToolStrip 控件提供丰富的设计时体验,包括就地激活和编辑、自定义布局、漂浮(即工具栏共享水平或垂直空间的能力)。

尽管 ToolStrip 替换了早期版本的控件并添加了功能,但是仍可以在需要时选择保留 ToolBar 以备向后兼容和将来使用。

ToolStrip 控件的功能

使用 ToolStrip 控件可以:

创建易于自定义的常用工具栏,让这些工具栏支持高级用户界面和布局功能,如停靠、漂浮、带文本和图像的按钮、下拉按钮和控件、“溢出”按钮和 ToolStrip 项的运行时重新排序。

支持操作系统的典型外观和行为。

对所有容器和包含的项进行事件的一致性处理,处理方式与其他控件的事件相同。

将项从一个 ToolStrip 拖到另一个 ToolStrip 内。

使用 ToolStripDropDown 中的高级布局创建下拉控件及用户界面类型编辑器。

通过使用 ToolStripControlHost 类来使用 ToolStrip 中的其他控件,并为它们获取 ToolStrip 功能。

通过使用 ToolStripRenderer、ToolStripProfessionalRenderer 和 ToolStripManager 以及 ToolStripRenderMode 枚举和 ToolStripManagerRenderMode 枚举,可以扩展此功能并修改外观和行为。

ToolStrip 控件为高度可配置的、可扩展的控件,它提供了许多属性、方法和事件,可用来自定义外观和行为。以下为一些值得注意的成员:

重要的 ToolStrip 成员
名称  说明  
Dock
获取或设置 ToolStrip 停靠在父容器的哪一边缘。

AllowItemReorder
获取或设置一个值,让该值指示拖放和项重新排序是否专门由 ToolStrip 类进行处理。

LayoutStyle
获取或设置一个值,让该值指示 ToolStrip 如何对其项进行布局。

Overflow
获取或设置是将 ToolStripItem 附加到 ToolStrip,附加到 ToolStripOverflowButton,还是让它在这两者之间浮动。

IsDropDown
获取一个值,该值指示单击 ToolStripItem 时,ToolStripItem 是否显示下拉列表中的其他项。

OverflowButton
获取 ToolStripItem,它是启用了溢出的 ToolStrip 的“溢出”按钮。

Renderer
获取或设置一个 ToolStripRenderer,用于自定义 ToolStrip 的外观和行为(外观)。

RenderMode
获取或设置要应用于 ToolStrip 的绘制样式。

RendererChanged
当 Renderer 属性更改时引发。


通过使用多个伴随类可以实现 ToolStrip 控件的灵活性。以下为一些最值得注意的伴随类:

重要的 ToolStrip 伴随类
名称  说明  
MenuStrip
替换 MainMenu 类并添加功能。

StatusStrip
替换 StatusBar 类并添加功能。

ContextMenuStrip
替换 ContextMenu 类并添加功能。

ToolStripItem
抽象基类,它管理 ToolStrip、ToolStripControlHost 或 ToolStripDropDown 可以包含的所有元素的事件和布局。

ToolStripContainer
提供一个容器,在该容器中窗体的每一侧均带有一个面板,面板中的控件可以按多种方式排列。

ToolStripRenderer
处理 ToolStrip 对象的绘制功能。

ToolStripProfessionalRenderer
提供 Microsoft Office 样式的外观。

ToolStripManager
控制 ToolStrip 呈现和漂浮,并控制 MenuStrip 对象、ToolStripDropDownMenu 对象和 ToolStripMenuItem 对象的合并。

ToolStripManagerRenderMode
指定应用于窗体中的多个 ToolStrip 对象的绘制样式(自定义、Windows XP 或 Microsoft Office Professional)。

ToolStripRenderMode
指定应用于窗体中的一个 ToolStrip 对象的绘制样式(自定义、Windows XP 或 Microsoft Office Professional)。

ToolStripControlHost
承载不是明确的 ToolStrip 控件、但您需要为其提供 ToolStrip 功能的其他控件。

ToolStripItemPlacement
指定是在主 ToolStrip 中对 ToolStripItem 进行布局,是在溢出 ToolStrip 中对它进行布局,还是都不进行布局。



ToolStrip 技术摘要

本主题概括介绍 ToolStrip 控件以及支持使用该控件的类的相关信息。

ToolStrip 控件及其关联的类为创建工具栏、状态栏和菜单提供了完整的解决方案。

命名空间
System.Windows.Forms

背景
通过 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 和 ToolStripDropDown 控件取代了以前的工具栏、菜单、状态栏和快捷菜单控件,不过为了向后兼容还是保留了这些控件。

ToolStrip 类一览
下表显示了按技术领域分组的 ToolStrip 类。

技术领域  类  
工具栏、状态和菜单容器
ToolStrip

MenuStrip

ContextMenuStrip

StatusStrip

ToolStripDropDownMenu

ToolStrip 项
ToolStripLabel

ToolStripDropDownItem

ToolStripMenuItem

ToolStripButton

ToolStripStatusLabel

ToolStripSeparator

ToolStripControlHost

ToolStripComboBox

ToolStripTextBox

ToolStripProgressBar

ToolStripDropDownButton

ToolStripSplitButton

位置
ToolStripContainer

ToolStripContentPanel

ToolStripPanel

表示和呈现
ToolStripManager

ToolStripRenderer

ToolStripProfessionalRenderer

ToolStripRenderMode

ToolStripManagerRenderMode


ToolStrip 设计时功能
ToolStrip 控件系列提供了一组丰富的工具和模板,可用于就地编辑和定义用户界面的基础,以使您能够快速地创建可以使用的应用程序。

任务对话框
在 Visual Studio 中,单击设计器中的控件上的智能标记可以显示一个任务列表,通过它可方便地访问许多常用的命令。


Topic Location
“ContextMenuStrip 任务”对话框 Windows 窗体编程
“ContextMenuStrip 任务”对话框 Windows 窗体编程
“MenuStrip 任务”对话框 Windows 窗体编程
“MenuStrip 任务”对话框 Windows 窗体编程
“StatusStrip 任务”对话框 Windows 窗体编程
“StatusStrip 任务”对话框 Windows 窗体编程
“ToolStrip 任务”对话框 Windows 窗体编程
“ToolStrip 任务”对话框 Windows 窗体编程
“ToolStripContainer 任务”对话框 Windows 窗体编程
“ToolStripContainer 任务”对话框 Windows 窗体编程


项集合编辑器
在 Visual Studio 中,当单击任务列表上的“编辑项”或右击控件并选择快捷菜单中的“编辑项”时,将显示控件的集合编辑器。使用集合编辑器可以添加、移除和重新排序控件包含的项。还可以查看和更改控件及控件项的属性。


Topic Location
ContextMenuStrip 项集合编辑器 Windows 窗体编程
ContextMenuStrip 项集合编辑器 Windows 窗体编程
MenuStrip 项集合编辑器 Windows 窗体编程
MenuStrip 项集合编辑器 Windows 窗体编程
StatusStrip 项集合编辑器 Windows 窗体编程
StatusStrip 项集合编辑器 Windows 窗体编程
ToolStrip 项集合编辑器 Windows 窗体编程
ToolStrip 项集合编辑器 Windows 窗体编程


承载控件
ToolStripControlHost 类为 ToolStripComboBox、ToolStripTextBox 和 ToolStripProgressBar 控件提供内置包装。您也可以在 ToolStripControlHost 中承载其他任何现有控件或 COM 控件。

有关控件承载的示例,请参见如何:使用 ToolStripControlHost 包装 Windows 窗体控件。

呈现
ToolStrip 类实现的呈现方案与其他 Windows 窗体控件有显著的不同。通过此方案,您可以轻松地应用样式和主题。

若要将某个样式应用于 ToolStrip 及其包含的所有 ToolStripItem 对象,您无需对每个项都处理 Paint 事件。您可以将 RenderMode 属性设置为一个除 Custom 以外的 ToolStripRenderMode 值。另外,您还可以直接将 Renderer 设置为从 ToolStripRenderer 类继承的任何类。设置此属性将自动设置 RenderMode。

通过将 RenderMode 设置为 ManagerRenderMode,并将 RenderMode 或 Renderer 属性分别设置为所需的 ToolStripManagerRenderMode 或 ToolStripRenderer 值,便可以将同一种样式应用于同一应用程序中的多个 ToolStrip 对象。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
tooltrip漂浮(在toolstrippanel和之外) 具体设计思想如下: 放置到ToolStripPanel上的,当工具栏浮动的时候,事实上是改变了其所在的容器对象,从其所在的ToolStripPanel移动到一个漂浮的容器上,因此要实现工具栏的浮动必须解决以下两个问题:     必须有一个浮动的容器来承载ToolStrip对象。     须知道ToolStrip对象何时改变其所在的容器,即在浮动的容器和主窗口上ToolStripPanel之间停靠。   对于第一个问题,我们的解决方案是动态的创建一个Form类作为浮动的容器,命名为ToolStripFloatWindow,该Form对象具有以下的属性:     FormBorderStyle = FixedToolWindow 边框样式     ShowInTaskbar = false 不在任务栏显示     ShowIcon = false 不显示窗口图标     TopMost = true 在所有窗口之上   为了解决第二个问题,我们查阅MSDN获知,当用鼠标拖拽ToolStrip对象释放鼠标时触发其EndDrag事件。 我们在这个事件的处理方法中判断当ToolStrip对象的位置被移动到所在的ToolStripPanel之外的时候,创建ToolStripFloatWindow对象,并将ToolStrip对象移动到ToolStripFloatWindow上;要使ToolStrip对象恢复到原来的窗体上只要判断ToolStripFloatWindow对象的位置是否移动到了ToolStripPanel上, 当条件满足时将ToolStrip对象移动回ToolStripPanel中并销毁ToolStripFloatWindow对象。   此外,还要解决当ToolStrip对象放置到ToolStripFloatWindow对象上时, ToolStripFloatWindow对象必须与ToolStrip对象的尺寸一致。 还有ToolStripFloatWindow对象被点击了关闭按钮时不能将自己关闭。我们可以做两个类来实现上述的思路。 ToolStripFloatWindow类继承自Form类。 MyToolStrip 继承自ToolStrip类。增加了相应的属性和方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值