Compartir vía


Ejemplo de evento Layout, propiedad LayoutEffect y método Move

En el ejemplo siguiente se mueve un control seleccionado en un formulario con el método Move y se usan los eventos Layout y LayoutEffect para identificar el control que se movió (y cambió el diseño de UserForm).

El usuario hace clic en un control para moverse y, a continuación, hace clic en el control CommandButton. Un cuadro de mensaje muestra el nombre del control que se está moviendo.

Para usar este ejemplo, copie este código de muestra en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:

  • Un control TextBox denominado TextBox1.
  • Un control ComboBox denominado ComboBox1.
  • OptionButton denominado OptionButton1.
  • Un control CommandButton denominado CommandButton1.
  • Un control ToggleButton denominado 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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.