自动 Size/Adjust 用户表单
Auto Size/Adjust Userform
我是 VBA 编程新手,我有一个 Userform
TextBoxes
、Labels
和 Checkboxes
。
我的问题是如何自动调整大小或调整表格,因为我已经隐藏了 Textbox
和 Label
,现在如果我点击 Button
它会取消隐藏 Texbox
和 Label
并且它还会自动调整 Form
和其他控件的大小。
我不知道如何开始。
实际结果
假设在 Team Name
和 Last Name
之间隐藏了 Label
和 Texbox
现在我单击更新 RadioButton
它将取消隐藏隐藏 Label
和 Texbox
并调整表单和其他控件。
预期结果
有什么办法吗?
比如说,控件Tbx所要求的space隐藏在距离顶部90pt的层级是30pt。因此,当 Tbx 可见时,它下面的所有控件都应向下移动 30pt,并且窗体的高度也会增加相同的尺寸。下面的代码将完成此操作,同时取消隐藏控件。
Dim Ctl As MSForms.Controls
For Each Ctl In Me.Controls
With Ctl
If .Top >= 90 Then
If .Visible = True Then
.Top = Top + 30
Else
.Visible = True
End If
End If
End With
Next Ctl
Me.Top = Top + 30
实践中有两件事会有所不同。
- 您可能需要再次隐藏控件。
- 您可以即时创建控件而不是将其隐藏起来。
如果您计划再次隐藏该控件,您将需要一个包含所有受影响的控件名称的数组和另一个数组(或维度)用于它们现有的 Top。您将遍历数组中的所有名称并重置顶部,例如
Me.Controls(Arr(0, i)).Top = Arr(1, i) + Iif(HideMe, 0, 30)
考虑即时创建控件。您应该能够简单地创建一个现有控件的副本,它从中继承所有属性。但是,该控件的任何事件代码都需要提前准备。
我是 VBA 编程新手,我有一个 Userform
TextBoxes
、Labels
和 Checkboxes
。
我的问题是如何自动调整大小或调整表格,因为我已经隐藏了 Textbox
和 Label
,现在如果我点击 Button
它会取消隐藏 Texbox
和 Label
并且它还会自动调整 Form
和其他控件的大小。
我不知道如何开始。
实际结果
假设在 Team Name
和 Last Name
之间隐藏了 Label
和 Texbox
现在我单击更新 RadioButton
它将取消隐藏隐藏 Label
和 Texbox
并调整表单和其他控件。
预期结果
有什么办法吗?
比如说,控件Tbx所要求的space隐藏在距离顶部90pt的层级是30pt。因此,当 Tbx 可见时,它下面的所有控件都应向下移动 30pt,并且窗体的高度也会增加相同的尺寸。下面的代码将完成此操作,同时取消隐藏控件。
Dim Ctl As MSForms.Controls
For Each Ctl In Me.Controls
With Ctl
If .Top >= 90 Then
If .Visible = True Then
.Top = Top + 30
Else
.Visible = True
End If
End If
End With
Next Ctl
Me.Top = Top + 30
实践中有两件事会有所不同。
- 您可能需要再次隐藏控件。
- 您可以即时创建控件而不是将其隐藏起来。
如果您计划再次隐藏该控件,您将需要一个包含所有受影响的控件名称的数组和另一个数组(或维度)用于它们现有的 Top。您将遍历数组中的所有名称并重置顶部,例如
Me.Controls(Arr(0, i)).Top = Arr(1, i) + Iif(HideMe, 0, 30)
考虑即时创建控件。您应该能够简单地创建一个现有控件的副本,它从中继承所有属性。但是,该控件的任何事件代码都需要提前准备。