C#2010  编辑工具栏
工具栏也是Windows窗体程序的重要组成部分,几乎所有大型Windows程序都通过工具栏,将各种用户最常用的功能以按钮的形式展现出来。例如,Windows自带的【通讯簿】程序,就包含【新建】、【属性】、【删除】、【查用户】、【打印】和【操作】等功能组成的工具栏,如图9-13所示。
图9-13  【通讯簿】中的工具栏
1.创建工具栏控件
为应用程序创建工具栏,需要使用到ToolStrip控件及其相关的类。ToolStrip控件可以按钮的方
式显示多个命令,提供用户访问命令的快捷方式,从而提高命令的访问效率。ToolStrip控件具有如下几种功能。
在各容器之间显示公共用户界面
创建易于自定义的常用工具栏,允许用户进行自定义、调节按钮以及展开未显示按钮。
支持溢出和运行时项的重新排序
通过通用的显示模型支持操作系统的典型外观和行为
对所有容器和包含的项进行事件的一致性处理,处理方式与其他控件的事件相同
支持用户将项从一个ToolStrip拖拽到另一个ToolStrip内。
支持创建下拉控件及用户界面类型编辑器
创建工具栏控件,可以直接选择窗体,然后再从【工具箱】面板中选择【菜单和工具栏】选项卡下的【ToolStrip】列表项目,将其拖拽至窗体中,如图9-14所示。
图9-14  插入工具栏控件
在插入工具栏控件后,可单击第一个默认插入的图表右侧的箭头,在弹出的菜单中选择工具栏控件,即可将控件插入到工具栏中,如图9-15所示。
图9-15  选择和插入控件
2.设置工具栏属性
在选中整个工具栏后,可以在【属性】面板中设置工具栏的各种样式、外观和行为,如图9-16所示。
图9-16  设置工具栏属性
ToolStrip控件与MenuStrip控件类似,都是派生自System.Windows.Forms命名空间的类,其包含多种属性用于定义工具栏,如表9-3所示。
表9-3  ToolStrip控件的属性
属性
作用
Dock
获取或设置ToolStrip停靠在父容器的哪一边缘
AllowItemReorder
获取或设置一个值,指示拖放和项重新排序是否专门由ToolStrip类进行处理
LayoutStyle
获取或设置一个值,指示ToolStrip如何对其项进行布局
IsDropDown
获取一个值,指示单击ToolStripItem时,ToolStripItem是否显示下拉列表中的其他项。
OverflowButton
获取ToolStripItem,启用ToolStrip的“溢出”功能
Renderer
获取或设置ToolStripRenderer对象,对工具栏的外观和行为进行自定义。
RenderMode
获取或设置应用于ToolStrip的绘制样式
ToolStrip控件拥有一些伴随类,主要用于增强工具栏的灵活性,并为工具栏添加更多类型的内容,如表9-4所示。
表9-4  ToolStrip控件的伴随类
menustrip和toolstrip
类名
作用
ToolStripItem
抽象基类,管理工具栏中包含的所有元素事件和布局
ToolStripContainer
提供一个容器,通过面板对工具栏中的元素进行布局排列和显示
ToolStripRenderer
处理工具栏对象中的绘制功能
ToolStripProfessionalRenderer
为工具栏提供Microsoft Office样式的外观
ToolStripManager
控制工具栏的呈现和漂浮,并控制工具栏中各种菜单的合并
ToolStripManagerRenderMode
指定多个工具栏的绘制样式
ToolStripRenderMode
指定应用于窗体中的工具栏的绘制样式
ToolStripControlHost
承载非工具栏且需要实现工具栏功能的其他控件
ToolStripItemPlacement
指定工具栏的布局方式,包括在主工具栏中布局、在溢出工具栏中布局或不布局
3.工具栏中的元素
在为工具栏添加元素时,可以看到工具栏支持8种控件类型,例如Button等。事实上虽然在窗体设计中,这8种控件的名称为之前介绍的控件名称,但在代码中,这8种控件是以独立的类实现的,如下所示。
ToolStripButton
ToolStripButton控件的作用是创建一个支持文本和图像的工具栏按钮,可以使用ToolStripItemImageAlign和ToolStripItemTextAlign等属性获取和设置其中图像和文本的位置。
ToolStripLabel
ToolStripLabel控件的作用是显示不可选择的ToolStripItem,其可以显示文本和图像,并且可以显示超链接,可使用LinkBehavior事件获取或设置一个表示链接的行为和值。
ToolStripSplitButton
表示左侧标准按钮和右侧下拉按钮的组合,如RightToLeft的值为Yes,则这两个按钮的位置互换。
ToolStripDropDownButton
表示当单击ToolStripDropDownButton时,可以从列表中选择单个项的控件,显示选项的下拉列表。
ToolStripSeparator
用于分割相邻的工具栏按钮,如工具栏是平面的样式,Separator按钮将显示为两个按钮之间的垂直直线,否则将显示三维的凹槽。
ToolStripComboBox
为在ToolStrip中承载而优化过的ComboBox控件,ToolStripComboBox显示一个与ListBox组合的编辑字段,使得用户可以从列表中选择或输入新的文本。
ToolStripTextBox
该控件允许在应用程序中输入文本。此控件具有多种标准Windows文本框控件所未有的附加功能,例如多行编辑等。
ToolStripProgressBar
该控件将所有ToolStripProgressBar的漂浮和显示功能与其典型进程跟踪功能组合在一起。ToolStripProgressBar在大多数情况下由StatusStrip承载,在很少情况下由ToolStrip承载。