Layout 事件、LayoutEffect 属性和 Move 方法示例

下例用 Move 方法在窗体上移动选定的控件,并用 Layout 事件和 LayoutEffect 属性来标识被移动的控件(并改变用户窗体的布局)。用户单击控件来移动它,再单击命令按钮。信息框显示正在移动的控件名称。

窗体包含:

  • 名为 TextBox1 的文本框。
  • 名为 ComboBox1 的组合框。
  • 名为 OptionButton1 的选项按钮。
  • 名为 ToggleButton1 的切换按钮。
Sub UserForm_Initialize()
    
    UserForm_ToggleButton1.Caption = "Use Layout Event"
    UserForm_ToggleButton1.Value = True
End Sub


Sub UserForm_UserForm_Layout()
    Dim MyControl
    
    MsgBox "In the Layout Event"
        
    '查找正在移动的控件。
    For Each MyControl In Controls
        If MyControl.LayoutEffect =fmLayoutEffectInitiate Then
            MsgBox MyControl.Name & " is moving."
            Exit For
        End If
    Next
End Sub

Sub UserForm_ToggleButton1_Click()
    If UserForm_ToggleButton1.Value = True Then
        UserForm_ToggleButton1.Caption = "Use Layout Event"
    Else
        UserForm_ToggleButton1.Caption = "No Layout Event"
    End If
End Sub

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29