我有一个带有分组控件的Office 2007 MSForms用户窗体(在Word中,但这也适用于Excel和PowerPoint)。要清楚,他们不在#34;框架内。控制;相反,我已经使用IDE组/取消组合功能将它们组合在一起。
我正在处理一些Form_Resize代码,我想将组作为完整的组移动,而不是单独移动所有控件。
可以这样做吗?我找不到任何类型的"控制组"对象是指。我在调试模式下停止了代码并检查了Me.*
和Me.Controls.*
下的每个项目,但我找不到任何明显的内容。
为了再次触摸框架控件,我确实发现我可以将控件放在没有标题,背景或边框的框架中,这似乎有效。但分组控制功能更易于使用。
答案 0 :(得分:1)
除了你自己建议的解决方案之外,没有任何其他解决方案。一种不同的方法就是将控件添加到数组中,然后迭代它,如下所示:
Private Sub UserForm_Click()
Dim c As Variant
For Each c In Array("TextBox1", "TextBox2", "TextBox3")
With Me.Controls(c)
.Top = .Top + 50
End With
Next
End Sub
答案 1 :(得分:1)
使用控件的Tag
属性分配ID
也许这是一种更简单的方法,可以为您要移动的所有控件的Tag
属性分配ID,例如“组1”。因此,您可以使用以下代码来获取整个“Family”。
代码示例
Private Sub CommandButton1_Click()
' Purpose: move every control with Tag property "Group1"
Dim c As Variant
For Each c In Me.Controls
If c.Tag = "Group1" Then c.Top = .Top + 50
Next c
End Sub