|
用户可以对在设计时刻创建的工具栏进行编程,使其那个在运行时对条件的变化作出动态响应。如果一个特殊的控件在某个场合下不是合适的选择,那么抑或可以删除或者禁用该控件以防止用户点中它。如果一个控件有两种状态来表示选项,用户可以采用在控件被按下时表示打开选项,控件被放开时表示关闭选项。
注释 虽然既可以使用“自定义”对话框也可以使用Visual Basic对工具栏进行设计时刻修改,但是必须使用Visual Basic来进行任何运行时刻修改。
显示或隐藏工具栏和工具栏控件
工具栏在屏幕上所占用的空间也可以以其他方式用来显示日期;用户可以在必要的时候显示工具栏而在不再需要它的时候把它隐藏起来。工具栏在它的Visual 属性为True(真)时是可见的,而在该属性为False(假)时是不可见的。设置该属性为True(真)就等价于,在“工具栏”对话框中的“工具栏”表里该工具栏名字旁边的复选框内打上对钩,然后单击“确定”。
下面的Microsoft Excel的过程指定给“视图”菜单中的菜单项View MyToolbar,用户每次点击该菜单项,就使该过程在菜单项和工具栏Visible属性的两种状态之间进行切换。当工具栏重新出现时,它所处的位置就是它隐藏不可见时的位置。
Sub ViewMyAppToolbar()
With CommandBars("Worksheet Menu Bar").Controls("View").Controls("View MyToolbar")
If .State = msoButtonUp Then
.State = msoButtonDown
CommandBars("MyAppTools").Visible = True
Else
.State = msoButtonUp
CommandBars("MyAppTools").Visible = False
End If
End With
End Sub
当工具栏可见时,用户可以单击上面的任何控件,运行给控件指定的过程。
如果想要一个特定的工具栏只在某种条件存在时才出现,那么可以在运行时刻隐藏或显示工具栏控件。通过设置Visible属性为True(真)或False(假),能够有效地向用户工作区添加控件,或者从用户工作区中去掉控件而不必真正地删除该控件。
注释 因为Word可以在文档和模板中保存自定义信息,那么当文档或模板有效时,就会显示出自定义工具栏和工具栏控件,而当文档或模板无效时,又会把它们隐藏起来。与此相对照,因为Microsoft Excel在工作簿级保存自定义信息,又会需要在事件代码中使用Visible属性来动态地更改界面。
移动工具栏及调整工具栏的大小
用户可能希望在自己的应用程序运行时能够随着条件的改变来调整屏幕上工具栏的突出性。这可以通过改变工具栏的大小或位置来做到。用户可以使用工具栏所支持的几种属性来对其进行调整;将它们定位在应用程序窗口的底部、底部、左边或者右边;或者将它们放在屏幕的随便什么位置(如果它们是浮动工具栏的话)。要对表示工具栏的CommandBar对象的属性和方法作更多的了解,请参考“帮助”中的“CommandBar 对象”,使用标题上的跳转来显示属性和方法的列表。
恢复内置工具栏
如果一个默认工具栏已经被修改了-被用户或Visible Basic过程-用户能够通过Reset方法将工具栏恢复到它的默认状态。使用该方法等价于,在“自定义”对话框中的“工具栏”一栏里选中被自定义的内制工具栏的名字,然后单击“确定”。
下面的例子将所有工具栏恢复到它们的默认状态,同时删除所了所有的自定义工具栏。
For Each cb In CommandBars
If cb.BuiltIn Then
cb.Reset
Else
cb.Delete
End If
Next
当心 当使用Reset方法时要小心;它不但能够恢复任何被删除的内置工具栏控件,而且还会删除任何添加的自定义工具栏控件。要牢牢记住,另一个宏可能已经向工具栏添加了自定义工具栏,复位工具栏也会删除这些控件。为了避免这些问题,应该一个一个地删除应用程序所添加的工具栏控件,而不要复位整个工具栏。
启用或禁用工具栏控件
用户可能想在自己的应用程序运行时控制某个工具栏控件的可用性,以此来防止在不合适的时刻点中该按钮。要做到这一点,可以动态地启用或禁用工具栏控件。当工具栏被禁用时,点中它不会有什么反应,也不会运行和它关联的过程。使用Enable属性来设置或返回工具栏控件的状态(被启用或被禁用)。
下面的例子禁用了“常用”工具栏中的第三个按钮。
CommandBars("Standard").Controls(3).Enabled = False
指出工具栏控件的状态
如果一个工具栏按钮表示有着两种状态的一个选项,可以通过改变按钮的外观来指出当前选项的状态;当选项打开时,与之相关联的按钮显示出被按下的状态;当选项关闭时,按钮显示被放开的状态。
如果工具栏按钮显示出被按下的状态,工具栏按钮的State属性值为msoButtonDown;而如果工具栏按钮显示出被放开的状态,该属性值为msoButtonUp。下面的过程被指定给新的工具栏控件Database View,在对工作簿的特殊查看间进行切换之前,它能够改变该控件的外观。
Sub DatabaseView()
With CommandBars("MyAppToolbar").Controls(3)
If .State = msoButtonDown Then
.State = msoButtonUp
'Switch to database view
Else
.State = msoButtonDown
'Switch to worksheet view
End If
End With
End Sub
修改文本框、列表框和组合框控件
如果给工具栏添加了文本框、列表框或组合框控件,那么可以进行运行时刻更改,比如改变控件中文本框部分的当前值、向控件的列表框中添加或从中删除项(只适用于列表框和组合框)。
用户能够通过设置文本框、列表框或组合框控件的Text属性,来反映自己的Visual Basic应用程序的状态。例如,如果单击一个工具栏按钮来运行名为“MaxZoom”的过程(一个自定义过程,能够以最大显示比例显示活动文档),组合框控件的文本框部分能够更加精确地调整显示比例,并且显示出比例值,该比例值能够被设置到最大值。
使用AddItem和RemoveItem方法来向列表框或组合框控件中的列表部分添加以及从中删除项(通过索引编号)。例如,如果在Word里创建了一个列表框,它遵循用户在一个时段内所使用的样式,用户可以在每次使用一种样式时向控件的列表部分添加一种样式的名称。
注释 在列表框或组合框控件里添加项或从中删除项时要小心;这将导致所有项的索引编号发生移动。
用户可以使用列表框和组合框的其他属性和方法来改变运行时刻一个控件的外观。例如,可以为控件添加和调整标题列表(标题列表是位于一个控件列表部分顶部的列表项组,用分隔线把该组同其他列表项分隔开)。要更进一步了解文本框、列表框和组合框控件的使用,请参考“帮助”中“使用命令栏”的内容。
|