vba - VBa - 用户窗体在两个页面上显示相同的组合框
问题描述
所以我有一个多页,我希望在两个页面上显示相同的按钮。我可以把它放在外面,但是多页的边框太丑了,所以我试着把所有的东西都放在页面上。不幸的是,您不能用相同的名称命名项目(例如组合框)。是否有解决方法来删除边框并仅显示页面名称或在两页上的项目上具有相同的名称?
解决方案
对这个目标有一些乐趣。
考虑这个带有 TabStrip、2 帧和一些其他控件的编辑器中的用户窗体。
框架由 、 等命名Frame0
。Frame1
假设
Frame0是位置引用,并且在显示 UserForm 时首先显示,下面的代码将是您想要的。
代码:
Option Explicit
Private Sub TabStrip1_Change()
Dim i As Long, lActiveTabIndex As Long
lActiveTabIndex = Me.TabStrip1.Value
For i = 0 To Me.TabStrip1.Tabs.Count - 1
Me.Controls("Frame" & i).Visible = (i = lActiveTabIndex)
Next i
End Sub
Private Sub UserForm_Initialize()
Dim i As Long
With Me
.Height = 288 ' Adjust to your desired height
' Align all FrameX top/left to same as Frame0, delete Caption and SpecialEffect
For i = 0 To Me.TabStrip1.Tabs.Count - 1
With Me.Controls("Frame" & i)
.Top = Me.Frame0.Top
.Left = Me.Frame0.Left
.Caption = ""
.SpecialEffect = fmSpecialEffectFlat
End With
Next i
End With
' Ensure frame for first tab is displayed
TabStrip1_Change
End Sub
用户表单首次加载(没有保存屏幕截图,也没有保存工作簿,抱歉)。
推荐阅读
- qt - 如何在 QLabel 中插入隐藏文本?
- javascript - react.js 中的组件库,带有 scss 和 webpack
- mysql - 在结果中显示表格中缺少的日期
- sql - oracle sql中groupby后如何加入
- typo3 - 更新到 10.4.6 后前端和后端出现错误
- node.js - 由于 node-gyp,jenkins 上的 npm 安装错误
- django - Heroku 上的 Dockerized Django 项目——用户帐户应用程序给出 HTTP 500 错误
- android - 在 CoordinatorLayout 中安排一个 BottomNavigationView、一个 FAB 和一个 FrameLayout 并使其与 Snackbar 一起使用
- batch-file - 如何在一个进程由批处理文件启动的另一个进程启动后运行命令?
- java - 将动态嵌套 Json 对象映射到 hashmap 并将键和值存储到两个字符串变量中,用逗号分隔