Поделиться через


Пример использования события Layout и свойств OldLeft, OldTop, OldHeight и OldWidth

В следующем примере свойства OldLeft и OldTop , а также Свойства OldHeight и OldWidth в событии Layout используются для сохранения текущего положения и размера элемента управления.

Пользователь щелкает элемент Управления CommandButton с меткой Move ComboBox , чтобы переместить элемент управления, а затем отвечает на окно сообщения. Чтобы восстановить состояние элемента управления для повторения действия, пользователь может нажать кнопку CommandButton с меткой Reset ComboBox.

Чтобы воспользоваться этим примером, скопируйте данный пример кода в раздел описаний формы. Убедитесь, что эта форма содержит:

  • Два элемента управления CommandButton с именами CommandButton1 и CommandButton2.
  • Объект ComboBox с именем ComboBox1.
Dim Initialize As Integer 
Dim ComboLeft, ComboTop, ComboWidth, _ 
 ComboHeight As Integer 
 
Private Sub UserForm_Initialize() 
 Initialize = 0 
 CommandButton1.Caption = "Move ComboBox" 
 CommandButton2.Caption = "Reset ComboBox" 
 
 'Information for resetting ComboBox 
 ComboLeft = ComboBox1.Left 
 ComboTop = ComboBox1.Top 
 ComboWidth = ComboBox1.Width 
 ComboHeight = ComboBox1.Height 
End Sub 
 
Private Sub CommandButton1_Click() 
 ComboBox1.Move 0, 0, , , True 
End Sub 
 
Private Sub UserForm_Layout() 
 Dim MyControl As Control 
 Dim MsgBoxResult As Integer 
 'Suppress MsgBox on initial layout event. 
 If Initialize = 0 Then 
 Initialize = 1 
 Exit Sub 
 End If 
 
 MsgBoxResult = MsgBox("In Layout event " _ 
 & "- Continue move?", vbYesNo) 
 If MsgBoxResult = vbNo Then 
 ComboBox1.Move ComboBox1.OldLeft, _ 
 ComboBox1.OldTop, ComboBox1.OldWidth, _ 
 ComboBox1.OldHeight 
 End If 
End Sub 
 
Private Sub CommandButton2_Click() 
 ComboBox1.Move ComboLeft, ComboTop, _ 
 ComboWidth, ComboHeight 
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.