Déplacer un formulaire sans barre de titre

Description

Déplacer un formulaire vb.net sans barre de titre et sans pb de visuel(flash) en moins de 10 lignes de code

Source / Exemple :


''explication: à placer dans les déclarations privées du formulaire
    Private _DecX As Double 'utilisé pour calculer le décalage entre le curseur de la souris et le formulaire
    Private _DecY As Double 'utilisé pour calculer le décalage entre le curseur de la souris et le formulaire

''explication: gestion du déplacement (évènement mousemove du formulaire)
    Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
        If e.Button = MouseButtons.Left Then 'si bouton gauche
            If Me.MouseButtons = MouseButtons.Left Then 'si bouton gauche (sécurité)
                MyBase.DesktopLocation = New System.Drawing.Point(Me.MousePosition.X - Me._DecX, Me.MousePosition.Y - Me._DecY) 'déplacement du formulaire
            End If
        End If
    End Sub

''explication: gestion du décalage entre la position de la souris et la position du formulaire (évènement mousedown du formulaire)
    Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
        'calcul du décalage entre la position du formulaire et la position de la souris
        Me._DecX = Me.MousePosition.X - Me.DesktopLocation.X
        Me._DecY = Me.MousePosition.Y - Me.DesktopLocation.Y
    End Sub

Conclusion :


Si le formulaire est recouvert de control, il suffit d'ajouter les handlers aux évènements pour que celà fonctionne.
Ex: Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove, TextBox1.MouseMove (à faire sur tout les contrôles permettant le déplacement du formulaire et sur tous les évènements cités ci-dessus)

ATTENTION: Le dépassement d'écran n'est pas géré dans ce code

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.