Excel ActiveX控件Toggle Button点击后背景色异常修改失效问题
解决方法
导致该问题的核心原因是ActiveX Toggle Button 的默认按下状态优先级高于手动设置的BackColor属性,会优先调用系统主题的高亮色进行渲染,直接修改BackColor不会生效。你可以尝试以下几种方案:
方案1:关闭控件的主题适配
选中Toggle Button进入设计模式,在属性面板中将UseTheme属性设置为False,之后再在Click事件中根据Value值修改BackColor即可生效。方案2:修改控件样式属性抵消默认按下效果
在Click事件中加入如下代码,通过修改SpecialEffect属性取消默认的凹陷高亮效果,自定义颜色会正常显示:
如果代码运行提示Private Sub ToggleButton1_Click() ' 请将ToggleButton1替换为你实际的控件名称 If ToggleButton1.Value = True Then ' 按下状态自定义样式,RGB值可自行调整 ToggleButton1.BackColor = RGB(0, 112, 192) ToggleButton1.ForeColor = RGB(255, 255, 255) ToggleButton1.SpecialEffect = fmSpecialEffectRaised Else ' 未按下状态恢复原有样式 ToggleButton1.BackColor = RGB(240, 240, 240) ToggleButton1.ForeColor = RGB(0, 0, 0) ToggleButton1.SpecialEffect = fmSpecialEffectRaised End If End SubfmSpecialEffectRaised未定义,可直接替换为对应数值2即可。方案3:改用表单控件实现切换效果
若上述方案受Office版本限制无法生效,可使用表单控件的普通按钮配合隐藏单元格存储状态,每次点击时直接切换按钮的填充色、文字内容,该方案兼容性最高,不会受系统主题影响。
补充:如果修改后样式未即时更新,可退出设计模式后重新打开Excel,清除ActiveX控件缓存即可正常显示。
内容的提问来源于stack exchange,提问作者Ashok
相关产品推荐
相关产品推荐

