Layout 事件和 OldLeft、OldTop、OldHeight、OldWidth 属性示例
下例在 Layout 事件内部使用 OldLeft、OldTop、OldHeight 和 OldWidth 属性,使控件保持当前的位置和大小。用户单击标签为“Move ComboBox”的命令按钮可移动控件,然后出现一个响应信息框。还可以单击标签为“Reset ComboBox”的命令按钮,为另一个副本将控件复位。
窗体包含:
- 名为 CommandButton1 和 CommandButton2 的两个命令按钮控件。
- 名为 ComboBox1 的组合框。
Dim Initialize
Dim ComboLeft, ComboTop, ComboWidth, ComboHeight
Sub UserForm_Initialize()
Initialize = 0
UserForm_CommandButton1.Caption = "Move ComboBox"
UserForm_CommandButton2.Caption = "Reset ComboBox"
'复位组合框的信息
ComboLeft = UserForm_ComboBox1.Left
ComboTop = UserForm_ComboBox1.Top
ComboWidth = UserForm_ComboBox1.Width
ComboHeight = UserForm_ComboBox1.Height
End Sub
Sub UserForm_CommandButton1_Click()
UserForm_ComboBox1.Move 0, 0, , , True
End Sub
Sub UserForm_Layout()
Dim MyControl
Dim MsgBoxResult
'初始 layout 事件时不输出 MsgBox。
If Initialize = 0 Then
Initialize = 1
Exit Sub
End If
MsgBoxResult = MsgBox("In Layout event - Continue move?", vbYesNo)
If MsgBoxResult = vbNo Then
UserForm_ComboBox1.Move UserForm_ComboBox1.OldLeft,UserForm_ComboBox1.OldTop, UserForm_ComboBox1.OldWidth,UserForm_ComboBox1.OldHeight
End If
End Sub
Sub UserForm_CommandButton2_Click()
UserForm_ComboBox1.Move ComboLeft, ComboTop, ComboWidth, ComboHeight
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
30
31
32
33
34
35
36
37
38
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
30
31
32
33
34
35
36
37
38