菜单和工具栏知识(8)-对工具栏的运行时刻修改
时 间:2004-12-16 00:00:00
作 者:竹笛 ID:8 城市:上海 QQ:2851379730
摘 要:菜单和工具栏知识(8)-对工具栏的运行时刻修改
正 文:
用户可以对在设计时刻创建的工具栏进行编程,使其那个在运行时对条件的变化作出动态响应。如果一个特殊的控件在某个场合下不是合适的选择,那么抑或可以删除或者禁用该控件以防止用户点中它。如果一个控件有两种状态来表示选项,用户可以采用在控件被按下时表示打开选项,控件被放开时表示关闭选项。
注释 虽然既可以使用“自定义”对话框也可以使用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属性来设置或返回工具栏控件的状态(被启用或被禁用)。
当使用Reset方法时要小心;它不但能够恢复任何被删除的内置工具栏控件,而且还会删除任何添加的自定义工具栏控件。要牢牢记住,另一个宏可能已经向工具栏添加了自定义工具栏,复位工具栏也会删除这些控件。为了避免这些问题,应该一个一个地删除应用程序所添加的工具栏控件,而不要复位整个工具栏。
下面的例子禁用了“常用”工具栏中的第三个按钮。
CommandBars("Standard").Controls(3).Enabled = False
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 32位的Access软件转化为64...(04.12)
- 【Access高效办公】如何让vb...(04.11)
- 仓库管理实战课程(10)-入库功能...(04.08)
- Access快速开发平台--Fun...(04.07)
- 仓库管理实战课程(9)-开发往来单...(04.02)
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)