如何实现RibbonX功能卡切换的响应事件
来源:互联网 发布:石田电子称软件 编辑:程序博客网 时间:2024/06/02 10:38
在Excel编程中,有时我们点击Tab功能卡后,希望切换工作表或让Excel有其他的响应,但是Tab没有可用的回调函数,如何实现RibbonX功能卡切换的响应事件呢?经过试验可以通过InvalidateControl 功能区中的某个控件,让它重新getLabel来实现。
多数控件都有getLabel回调函数,而我们自定义的功能卡中一般都会有button控件,这样只要每个功能卡中有一个这类的控件,就其Label设置成动态的getLabel回调实现,然后第个回调中加入需要实现的功能,并InvalidateControl其他功能区的button,那么在点击其他功能区Tab后,被InvalidateControl的控件会立即getLabel,这样就实现了点击每个功能区Tab的响应事件。
附部分代码如下:
'button的回调函数
Sub GetBtnLabel(control As IRibbonControl, ByRef returnedVal) Dim label As String Select Case control.ID Case "btnGznyED" label = IIf(PublicProperty.当前工作年月 = "", Format(Date, "yyyy年mm月"), PublicProperty.当前工作年月) Case "btnGznyRY" label = IIf(PublicProperty.当前工作年月 = "", Format(Date, "yyyy年mm月"), PublicProperty.当前工作年月) Case "btnGznyJJ" label = IIf(PublicProperty.当前工作年月 = "", Format(Date, "yyyy年mm月"), PublicProperty.当前工作年月) Case "btnHideED"<span style="white-space:pre"></span>'功能卡1中的一个按钮 label = "总分配表" ChangeSheet (label)<span style="white-space:pre"></span>'想要实现的事件 PublicProperty.MyRibbon.InvalidateControl ("btnHideRY")<span style="white-space:pre"></span><span style="font-family: Arial, Helvetica, sans-serif;">'</span><span style="font-family: Arial, Helvetica, sans-serif;">InvalidateControl其他Tab中的控件</span> PublicProperty.MyRibbon.InvalidateControl ("btnHideJJ")<span style="white-space:pre"></span><span style="font-family: Arial, Helvetica, sans-serif;">'</span><span style="font-family: Arial, Helvetica, sans-serif;">InvalidateControl其他Tab中的控件</span> PublicProperty.MyRibbon.InvalidateControl ("btnSetXtcs")<span style="white-space:pre"></span><span style="font-family: Arial, Helvetica, sans-serif;">'</span><span style="font-family: Arial, Helvetica, sans-serif;">InvalidateControl其他Tab中的控件</span> Case "btnHideRY"<span style="font-family: Arial, Helvetica, sans-serif;"></span><span style="font-family: Arial, Helvetica, sans-serif;">'功能卡2中的一个按钮</span> label = "信息表" ChangeSheet (label) PublicProperty.MyRibbon.InvalidateControl ("btnHideED") PublicProperty.MyRibbon.InvalidateControl ("btnHideJJ") PublicProperty.MyRibbon.InvalidateControl ("btnSetXtcs") Case "btnHideJJ"<span style="font-family: Arial, Helvetica, sans-serif;"></span><span style="font-family: Arial, Helvetica, sans-serif;">'功能卡3中的一个按钮</span> label = "工作表" ChangeSheet (label) PublicProperty.MyRibbon.InvalidateControl ("btnHideRY") PublicProperty.MyRibbon.InvalidateControl ("btnHideED") PublicProperty.MyRibbon.InvalidateControl ("btnSetXtcs") Case "btnHideXtcs"<span style="font-family: Arial, Helvetica, sans-serif;"></span><span style="font-family: Arial, Helvetica, sans-serif;">'功能卡4中的一个按钮</span> label = "xtcs" ChangeSheet (label) PublicProperty.MyRibbon.InvalidateControl ("btnHideRY") PublicProperty.MyRibbon.InvalidateControl ("btnHideED") PublicProperty.MyRibbon.InvalidateControl ("btnHideJJ") Case Else label = IIf(PublicProperty.当前工作年月 = "", Format(Date, "yyyy年mm月"), PublicProperty.当前工作年月) End Select label = " " & label & " " returnedVal = labelEnd Sub
<button id="btnHideXtcs" getLabel="GetBtnLabel" onAction="setxtcs" />
0 0
- 如何实现RibbonX功能卡切换的响应事件
- JS中如何实现button响应的切换?
- 如何实现字体切换功能
- Flex 如何实现按钮之间的切换,按钮点击事件
- vb2005中如何实现敲回车切换焦点的功能
- 实现tab切换的功能
- 细品RibbonX(7):有效的RibbonX设计
- RibbonX:EXCEL2013自定义功能区
- MFC 如何响应StaticBox的点击事件
- RibbonX的学习资源
- CDialog类响应ActiveX事件的实现
- JS实现OCX控件的事件响应
- 【开发】在Lua中如何实现易景地球的事件响应
- DELPHI如何响应事件
- 如何实现按钮按下响应一个事件 松开另一个?
- 如何实现横屏竖屏的切换
- 谈功能树切换的实现
- 图片左右循环切换功能的实现
- 第二单元
- 软件开发流程
- 如何设计一个优秀的数据库
- HTML焦点与键盘事件
- MyEclipse反编译Class文件的实现
- 如何实现RibbonX功能卡切换的响应事件
- 《实体解析与信息质量》-2.1.2信息质量和信息品质
- 高质量C/C++编程指南(四)
- Lua中使用openGL shader时,Scale9Sprite无法变灰色
- Android学习 - 悬浮控件
- 几种地图投影方式
- JS 判断滚动条到底部的JS代码
- rubymine 入门简单例子教程
- 正式入驻CSDN