Пример использования события Layout, свойства LayoutEffect и метода Move
В следующем примере выбранный элемент управления перемещается на форму с помощью метода Move и использует событие Layout и свойство LayoutEffect для идентификации перемещаемого элемента управления (и изменения макета Пользовательской формы).
Пользователь щелкает элемент управления для перемещения, а затем щелкает Элемент управления CommandButton. В сообщении отображается имя перемещаемого элемента управления.
Чтобы воспользоваться этим примером, скопируйте данный пример кода в раздел описаний формы. Убедитесь, что эта форма содержит:
- Объект TextBox с именем TextBox1.
- Объект ComboBox с именем ComboBox1.
- Объект OptionButton с именем OptionButton1.
- Элемент CommandButton с именем CommandButton1.
- ToggleButton с именем ToggleButton1.
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 и обратная связь.