工具栏控件的另一种类型包含了一个小图标和附加的下拉式调色板。用户单击下拉箭头就可以显示出调色板,然后选择调色板上的某个选项。用户单击按钮控件来应用当前选项。例如,在Microsoft Excel中,单击字体颜色按钮上的单击工具栏控件的按钮下拉箭头就显示出字体颜色调色板,用户可以从中进行选择。 工具栏控件也可以是文本框、列表框或组合框。用户可以在文本框中键入文本或点击下拉箭头,然后在列表中选择选项。例如,在“格式”工具栏上,既可以在“字号”下拉列表框中点中一个选项, 最后一种工具栏控件是pop-up(弹出)控件,它那个显示其他控件的菜单。在工具栏上的pop-up控件和菜单栏上菜单的名字从本质上讲是一样。Microsoft Excel、Word或PowerPoint中“绘图”工具栏的“绘图”按钮都是pop-up控件的例子。 注释 虽然工具栏控件和ActiveX控件有着相似的外观和方式,但是它们两者是不相同的。不能向工具栏添加ActiveX控件,也不能向文档或窗体添加工具栏控件。 既然理解了什么是工具栏以及工具栏控件的种类,就可以研究前面介绍的修改工具栏和工具栏控件的细节。在下面的各节中,将讨论怎样对工具栏和工具栏控件进行设计时刻和运行时刻的更改。 自定义工具栏的原则 Microsoft Office的应用程序向用户提供了修改内置工具栏的广泛途径,使它能更好地为用户服务。用户可以创建新的工具栏;向内置或自定义工具栏添加新的工具栏按钮;修改工具栏按钮上的图标;以及为工具栏按钮指定宏、“工具提示”文本和状态栏文本。 是修改内置工具栏还是创建新的工具栏取决于要进行更改的程度。如果仅添加或修改几个工具栏按钮,那么修改内置工具栏是有意义的;如果想提供的对命令的分类与现有的任何内置工具栏完全不同,或者要用一些自定义工具栏按钮来作为特别组,那么创建新的工具栏会更方便一些。无论所做的改变有多大,只要愿意,都可以把内置菜单系统恢复到默认的状态。 除了上述通常在设计时刻所做的变化之外,还可以使用Visual Basic程序,通过改变工具栏和工具栏按钮的属性,来对应用程序运行时用户的输入作出响应(也就是说,在运行时刻)。例如,当用户不再需要某个工具栏时,可以把它隐藏起来,也可以移动它或改变它的大小使它不再挡路,还可以禁用某个工具栏按钮以防用户在不适当的时刻点中它,以及在用户每次点中工具栏按钮时让工具栏按钮在按下和放开之间切换。 使用菜单 可以把pop-up(弹出)控件-和显示菜单栏中的菜单以及菜单中的子菜单相同的控件-添加到任何内置或自定义工具栏中。通常,向工具栏添加菜单是在自定义内置菜单栏(不会象添加工具栏控件那么方便)和添加大量工具栏控件之间一种有益的折衷方案。在Microsoft Excel、Word或PowerPoint中,“绘图”工具栏上的“绘图”按钮就是工具栏带菜单的例子。 向工具栏添加菜单、子菜单和菜单项,采取的步骤和将这些组件添加到菜单栏所采取的步骤相同,在本章“菜单的设计时刻修改”一节作过介绍。 使用文本框、列表框和组合框 在Microsoft Office应用程序中,可以向内置和自定义工具栏添加文本框、列表框和组合框。这些控件是很有处的,可以从用户那里频繁取得信息,也可以运行复杂的程序,程序根据控件的值在可能的结果范围内进行判断。 “自定义”对话框支持向任何工具栏添加内置文本框、列表框和组合框,但是不支持添加自定义的文本框、列表框和组合框;作为替代,必须使用Visual Basic来添加和设计这些控件。打开“自定义”对话框,可以更改任一内置或自定义文本框、列表框或组合框的宽度。
对工具栏的设计时刻修改 设计时刻修改包括创建新的工具栏;向工具栏中添加新的或内置的工具栏控件;从工具栏中删除工具栏控件;对工具栏控件进行分组或取消分组;以及改变文本框、列表框和组合框工具栏控件的宽度。用户还可以选择一个新的图标,或使用“按钮编辑器”来自定义一个图标,用来于某个特殊的工具栏相关联。 添加自定义工具栏 在许多情况下,用户可以通过向内置工具栏添加工具栏控件的方法实现一个完整的命令集合。但是如果想要以一种便于使用的形式来表示一个完整的命令集合,而和所有的内置命令完全不同,可以创建一个新的工具栏。通过“自定义”对话框或Visual Basic都能实现这一点。 使用“自定义”对话框 “自定义”对话框提供了添加自定义工具栏的一种便利的途径。 添加工具栏 如果“自定义”对话框尚未打开,用鼠标指到“视图”菜单中的“工具栏”上,然后单击“自定义”。 新工具栏被添加到“工具栏”表中的“工具栏”一栏中。 使用CommandBars集合的Add法来创建新的工具栏,设置Add方法的参数Position为msoBarLeft, msoBarTop, msoBarRight, msoBarBottom, 或 msoBarFloating,它们指定创建的CommandBar对象一个浮动工具栏还是固定位置的工具栏。下面的例子创建并显示了一个新的名叫“Custom Tools”的工具栏。 Set cstm = CommandBars.Add(Name:="Custom Tools", Position:=msoBarFloating, _ MenuBar:=False, Temporary:=False) cstm.Visible = True 添加控件和控件分组 可以向任何内置或自定义工具栏添加控件,也可以直观地(用分隔线)把它们分成逻辑组。 使用“自定义”对话框 “自定义”对话框提供了向工具栏添加控件的一种简单的途径。 向工具栏添加内置控件 如果“自定义”对话框尚未打开,那么用鼠标指到“视图”菜单的“工具栏”上,然后单击“自定义”。 将控件从“命令”栏中拖到菜单上要添加该控件的位置,然后放开鼠标。 技巧 用户也可以打开包含了要被复制的控件的工具栏,然后按下“CTRL”,同时将该控件从中拖到另一个菜单栏里,完成复制。 “自定义”对话框也提供了向内置或自定义工具栏添加自定义命令的一条快捷的途径。但是,每个Microsoft Office应用程序都在使用“自定义”对话框实现该功能时采用了不同的技术。以下的段落介绍了这些区别。 Microsoft Access 要添加运行宏的控件,可以按照和向工具栏添加内置控件相同的步骤来完成。在“类别”一栏中,选择“所有宏”。将所选的宏从“命令”栏拖到工具栏中希望宏出现的位置上。要添加运行Function 过程的控件,也可以按照和向工具栏中添加内置控件相同的步骤来完成。在“类别”一栏中,选择任何一种类别然后将想要的任何菜单项拖到工具栏中希望它出现的位置上。在控件上单击鼠标右键,然后点击“属性”,打开“控件属性”对话框。在“标题”栏中,删除当前的名字,然后键入为控件取的新名字。在“所在操作”栏内,键入运行Visual Basic Function 过程的表达式。该表达式必须使用下面的语法:=functionname()。 Microsoft Excel 按照和向工具栏添加内置控件相同的步骤来完成;在“类别”栏内,单击“宏”,然后将“自定义按钮” 控件拖到工具栏中希望它出现的位置上。在新控件上单击鼠标右键,然后点击“指定宏”。在“指定宏”对话框中,选择要运行的宏。使用快捷菜单上的命令来改变控件的图标。 Microsoft Word 按照和向工具栏添加内置控件相同的步骤来完成;在“类别”栏内,单击“宏”,然后把宏从“命令”栏中拖到工具栏中希望它出现的位置上。在新控件的快捷菜单里的命令改变控件的名称、图标和其他显示特性。 技巧 在Word里,如果编写了一个与内置Word控件同名的过程(或者说,如果写了一个在与某个内置Word命令同名的模块内名为“MAIN”的过程),只要包含该过程的模块有效,那么该过程将替换内置控件的功能。在所有出现该控件的工具栏里的该控件的副本均执行替换过程。要对控制自定义内容作更进一步的了解,请参考本章前面的“用户界面的更改范围”一节的内容。要对修改Word命令作更多的了解,请参考第七章,“Microsoft Word Objects”。 Microsoft PowerPoint 按照和向工具栏中添加内置控件相同的步骤来完成;在“类别”栏内,单击“宏”,然后将宏从“命令”栏拖到希望它在工具栏中应处的位置。使用新控件的快捷菜单里的命令来改变控件的名称、图标和其他显示特性。 修改工具栏按钮的外观 按钮在工具栏上的外观既可以只是按钮图标,也可以只是按钮名称,或者是在名称旁边同时显示按钮图标。按钮的“样式”决定了按钮是带图标、还是只有名称或者既有图标又有名称。“自定义”对话框打开后,使用快捷菜单上的命令来设定按钮的式样。下表描述了式样对工具栏按钮的影响。 式 样 |