Mover un formulario o un control

 

Fecha: 02/Feb/2005 (FEBRERO 1 DE 2005)
Autor: HERNÁN DARÍO SAUMETT - herdar@yahoo.com
 

 

 


Con estas rutinas puedes mover un control o un formulario de manera eficiente, solo tienes que agregar las variables e incluir el codigo dentro de los eventos '_mousedown' y '_mousemove' del control.

Lo primero que debes hacer es declarar dos variables para almacenar las coordenadas 'X' y 'Y' del control, en este caso 'xIni' y 'yIni' de la siguiente manera.

 
Option Explicit 
Private xIni As Single
Private yIni As Single

Luego de esto les asignamos la posicion inicial del control en el evento '_MouseDown', como se muestra a continuacion:

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'Asignacion de las coordenadas 'X' y 'Y' del Control
    xIni = X
    yIni = Y    
End Sub

Y por ultimo le agregamos a la posicion, la diferencia entre la coordenada actual y la coordenada inicial. Debemos verificar que se este presionando el boton del mouse o sino se movera siempre que movamos el mouse.

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'Verificar que se presione el Boton del Mouse
    If Button = 1 Then
        Me.Top = Me.Top + (Y - yIni)
        Me.Left = Me.Left + (X - xIni)
    End If
End Sub

Como puedes ver el metodo es sumamente sencillo, pero igualmente eficiente.

Lo puedes utilizar tanto en Formularios como en Controles siempre que tengan los eventos '_MouseDown' y '_MouseMove'.

 


ir al índice

Fichero con el código de ejemplo: herdar_moverformulario.zip - Tamaño 1.29 KB