MovForm
[Arrastre de formulario desde cualquier parte de él sin Api's]

Fecha: 18/02/2003
Autor: José F. Romaniello


Sirve para arrastrar un formulario desde cualquier parte, como si fuera la barra de título, tengo entendido que también existe una api.

Con un código similar puedo arrastrar un frame dentro de un formulario también.

A continuación sigue código en Visual Basic:

Option Explicit
Dim intX As Integer, intY As Integer

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Compruebo que el boton sea el 1
'y no este maximizado
If Button = 1 And Not Me.WindowState = 2 Then
    intX = X            'Guardo las cordenadas
    intY = Y            'en variables globales.
End If
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Compruebo que el boton sea el 1
'y no este maximizado
If Button = 1 And Not Me.WindowState = 2 Then
    If X < intX Then
        'si x es menor que el anterior x
        'estoy desplazando el form hacia izq.
        Me.Left = Me.Left - (intX - X)
    Else
        'si x es mayor que el anterior x
        'estoy desplazando el form hacia der.
        Me.Left = Me.Left + (X - intX)
    End If

    If Y < intY Then
        'si y es menor que el anterior y
        'estoy desplazando el form hacia arriba
        Me.Top = Me.Top - (intY - Y)
    Else
        'si y es mayor que el anterior y
        'estoy desplazando el form hacia abajo
        Me.Top = Me.Top + (Y - intY)
    End If
End If
End Sub

Nota: el código es extremadamente simple, así que no adjunto código fuente.


ir al índice