下面的一系列文章将重点讲解如何在功能区中添加不同类型的自定义控件,它们与最底层的自定义命令相关。这里的自定义命令是指程序员自已编写的VBA过程。
添加按钮
如果要在内置功能区选项卡中添加两个按钮,在单击这些按钮时会调用VBA过程,那么执行下面的步骤:
1. 创建新工作簿并保存为启用宏的工作簿。
2. 关闭该工作簿,然后在CustomUI Editor中打开该工作簿。
3. 在CustomUI Editor中,单击“插入”并选择“Office 2007 Custom UI Part”。
4. 选择“Insert | Sample XML | Custom Tab”,作一些修改,或者复制并粘贴下面的XML代码,在功能区“插入”选项卡中添加包含两个按钮(标记为Insert 0和Insert 1,带有Mso图像0和1)的标记为Attn Sh的组。
选项卡元素:
idMso属性的值是内置选项卡的名称。本例中,TabInsert是“插入”选项卡的idMso。如果要在其他内置选项卡中插入按钮,那就使用其他选项卡的idMso替换掉TabInsert。
组元素:
group元素中label属性的值指定功能区中组显示的文本。
按钮元素:
其imageMso属性为按钮指定预定义的图像。如果要使用自已设计的图像,只需使用image属性替换掉imageMso属性。
onAction属性是一个回调属性。该属性的值是在单击按钮时要执行的VBA过程的名称。
5. 单击工具栏中的Validation按钮来检查是否有错误。
6. 单击Generate Callbacks按钮。
由于XML代码中有两个回调属性(每个按钮一个),因此生成两个回调:
'Callback for BtnInsert0onAction
SubInsert0(control As IRibbonControl)
End Sub
'Callback for BtnInsert1onAction
SubInsert1(control As IRibbonControl)
End Sub
复制回调代码。之后,要将其粘贴到工作簿的VBA模块中。
7. 保存并关闭该文件。
8. 在Excel中打开该工作簿文件。
9. 按Alt+F11键打开VBE。
10. 插入一个标准VBA模块并粘贴刚才复制的回调代码。
11. 添加一些代码来测试这两个按钮:
'Callbackfor BtnInsert0 onAction
Sub Insert0(control AsIRibbonControl)
With control
MsgBox "单击了" &.Context.Caption &"中的" &.ID
End With
End Sub
'Callbackfor BtnInsert1 onAction
Sub Insert1(control AsIRibbonControl)
With control
MsgBox "单击了" &.Context.Caption &"中的" &.ID
End With
End Sub
单击按钮时会显示:
在Insert0回调过程中的参数control有3个属性:
ID:在XML代码中指定的控件的id。
Context:包含该功能区的活动窗口。Context.Caption是出现在该窗口标题栏中的名称,本例中,为该工作簿的名称。
Tag:XML代码中元素(本例中是按钮元素)的tag属性的值。通常,标签用于识别控件执行的 *** 作。
下图展示在功能区的“插入”选项卡出现了含有两个按钮的Attn Sh组。
说明:本专题系列大部分内容学习整理自《Dissectand Learn Excel VBA in 24 Hours:Changingworkbook appearance》,仅供学习研究。
( 用什么标签不重要,只要样式用对了,都能出效果,用ul里面嵌套li与div嵌套div是一样的,注意里面子项里面要加一个<a></a>不然点击没效果 )
( 如果不加载element模块,也没有效果 )
(在页面中有很多元素需要自动去完成一些处理,譬如导航菜单的小滑块、Tab的切换 *** 作,他们往往不需要去单独调用一个方法来开启一项功能,而页面上恰恰有太多这样的小交互,所以我们统一归类为element组件)
相关样式:
1、方向
(1)水平:默认的
(2)垂直:layui-nav-tree
2、其他样式
(1) layui-nav :代表这是一个导航菜单
(2) layui-nav-item :放在(1)的子标签中,代表这个导航菜单的一个子项
(3) lay-this :和(2)同级,代表当前选中的菜单项
(4) layui-nav-child :子项的子项
(5) layui-nav-img :会以导航合适的大小处理图片
导航菜单可应用于头部和侧边,Tab选项卡提供多套风格,支持响应式,支持删除选项卡等功能。面包屑结构简单,支持自定义分隔符。
1、风格说明
默认风格:只需要加layui-tab
简洁风格:再追加上layui-tab-brief
卡片风格:再追加上layui-tab-card
2、相关样式
layui-tab:代表这是一个选项卡
(1)layui-tab-title:选项卡的头
【1】layui-tab-this:选中该选项卡
(2)layui-tab-content:选项卡的内容
【1】layui-tab-item:一个选项卡头对应的具体内容
【2】layui-tab-show:表示初始显示,一般哪个头上加了layui-tab-this,它对应的content就加上layui-tab-show
3、相关属性
lay-allowclose="true":是否开启关闭按钮
lay-filter="demo":用来在方法中唯一确定一个layui组件
lay-id="1":用来配合lay-filter属性唯一确定一个子组件
4、相关方法
element.tabAdd(filter, options):用于新增一个Tab选项
option示例:
{
title: '选项卡的标题'
,content: '选项卡的内容' //支持传入html
,id: '选项卡标题的lay-id属性值'
}
element.tabDelete(filter, layid):用于删除指定的Tab选项
element.tabChange(filter, layid):用于外部切换到指定的Tab项上
进度条进度条可应用于许多业务场景,如任务完成进度、loading等等,是一种较为直观的表达元素。
相关样式:
layui-progress:表示这是一个进度条
layui-progress-bar:表示进度条中的进度,依靠其lay-percent属性的值来控制进度大小,值取值范围0-100%
layui-bg-red/green/...:表示进度条的颜色
layui-progress-big:表示大尺寸进度条
相关属性:
lay-percent="80%":代表具体的进度
lay-showpercent="true":是否显示百分比数字
进度条的宽度是 100% 适配于它的父级元素
一般的面板通常是指一个独立的容器,而折叠面板则能有效地节省页面的可视面积,非常适合应用于:QA说明、帮助文档等(同样依赖element)
1、卡片面板
相关样式:
layui-row:代表一行
layui-col-space15:space0-space30,代表卡片之间的间距
layui-colmd5:md1-12,代表当前卡片占整行的列数
layui-card:代表一个卡片
layui-card-header:代表卡片头信息
layui-card-body:代表卡片内容样式
2、普通折叠面板
相关样式:
layui-collapse:代表一个折叠面板
layui-colla-item:代表一个折叠项
layui-colla-title:代表一个折叠项的标题
layui-colla-content:代表一个折叠项展开s的内容
layui-show:是否展开
相关事件:
3、手风琴面板
在普通折叠面板的基础上加上lay-accordion=""
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)