Déplacer un formulaire sans barre de titre

0/5 (1 avis)

Vue 4 272 fois - Téléchargée 484 fois

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

Ajouter un commentaire Commentaire
cs_Warny Messages postés 473 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 juin 2015
2 déc. 2003 à 16:38
la même chose en magnétique :
http://www.vbfrance.com/code.aspx?ID=17715
le même chose avec un contrôle dans une frame (et magnétique et compris sous forme de classe dans mon premier) :
http://www.vbfrance.com/code.aspx?ID=17548
Warny

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.