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

以下示例使用 Move 方法移动窗体上的选定控件,并使用 Layout 事件和 LayoutEffect 属性来标识移动 (并更改 了 UserForm) 布局的控件。

用户单击要移动的控件,然后单击 CommandButton。 A message box displays the name of the control that is moving.

若要使用此示例,请将此示例代码复制到窗体的"声明"部分。 确保该窗体包含:

  • 一个名为"TextBox1"的 TextBox
  • 一个名为"ComboBox1"的 ComboBox
  • 一个名为 OptionButton1 的 OptionButton。
  • 一个名为"CommandButton1"的 CommandButton
  • 一个名为"ToggleButton1"的 ToggleButton
Private Sub UserForm_Initialize() 
 CommandButton1.Caption = "Move current control" 
 CommandButton1.AutoSize = True 
 CommandButton1.TakeFocusOnClick = False 
 
 ToggleButton1.Caption = "Use Layout Event" 
 ToggleButton1.Value = True 
End Sub 
 
Private Sub CommandButton1_Click() 
 If ActiveControl.Name = "ToggleButton1" Then 
 'Keep it stationary 
 Else 
 'Move the control, using Layout event when 
 'ToggleButton1.Value is True 
 ActiveControl.Move 0, 0, , , _ 
 ToggleButton1.Value 
 End If 
End Sub 
 
Private Sub UserForm_Layout() 
 Dim MyControl As Control 
 
 MsgBox "In the Layout Event" 
 
 'Find the control that is moving. 
 For Each MyControl In Controls 
 If MyControl.LayoutEffect = _ 
 fmLayoutEffectInitiate Then 
 MsgBox MyControl.Name & " is moving." 
 Exit For 
 End If 
 Next 
End Sub 
 
Private Sub ToggleButton1_Click() 
 If ToggleButton1.Value = True Then 
 ToggleButton1.Caption = "Use Layout Event" 
 Else 
 ToggleButton1.Caption = "No Layout Event" 
 End If 
End Sub

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。