begin process at 2008 09 05 21:06:50
1 237 501 membres
441 nouveaux aujourd'hui
14 313 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DÉPLACER UN FORMULAIRE SANS BARRE DE TITRE


Information sur la source

Catégorie :VB.NET Niveau : Débutant Date de création : 01/12/2003 Date de mise à jour : 01/12/2003 22:07:34 Vu / téléchargé: 2 255 / 184

Note :
Aucune note

Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

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

  • ''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
''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
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de Warny le 02/12/2003 16:38:42

    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

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Boutique

Boutique de goodies CodeS-SourceS