Drag and Drop d'une fenêtre principale sans bordures / .Net [Résolu]

Signaler
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
-
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
-
Salut à tous,

Bien ma question est très simple : J'ai une fenêtre d'application qui n'a pas de bordure car cette application à comme fond une image.
j'aimerais pouvoir déplacer cette fenètre en utilisant la souris via le procédé Drag And Drop, j'ai commencer à faire la prog du tout mais lorsque je déplace celle-ci elle ne suis pas du tout la souris ou alors elle clignote le temps du déplacement, mais le pire est que lors du relachement du bouton de la souris, la fenètre n'est pas du tout à l'emplacement voulu.

Quelqu'un peux t'il m'aider ?

Merci d'avance :

Mon code :

Private
Sub MainSrc_MouseUp(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.MouseEventArgs)
Handles
MyBase.MouseUp





Me.Location =
New System.Drawing.Point(e.X, e.Y)




End
Sub


Chris...
Web : Firstruner

6 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Bonjour,

Et encore et toujours la même question,
Mais bon, j'y répond quand même.
On ne peut pas utiliser le DragDrop pour déplacer une fenêtre !

Utilise plutôt:

Private PtClick As System.Drawing.Point
Private Sub MaisScr_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown If e.Button Windows.Forms.MouseButtons.Left Then PtClick e.Location
End Sub
Private Sub MaisScr_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
If e.Button = Windows.Forms.MouseButtons.Left Then
MyBase.Location = New System.Drawing.Point(MyBase.Left + (e.X - PtClick.X), MyBase.Top + (e.Y - PtClick.Y))
End If
End Sub

Kenji

<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 112 internautes nous ont dit merci ce mois-ci

Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
14
Merci bien pour ces informations, et désoler de ne pas connaître le language adéquate, en revanche il faut fair eune légère modif à ton code
car en DotNet 1, 'e' ne retourne pas d'object 'location'


Chris...
Web : Firstruner
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 112 internautes nous ont dit merci ce mois-ci

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Pour la prochaine fois, indique le langage utilisé (aussi dans la question) ainsi que la version.
Comme ca j'aurais pu adapter. Bon, là ce n'est pas trop grave mais des fois y'a tout qui change.

Kenji
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016

salut,



tu localise le formulaire (le coin supérieur gauche) à la position de
la souris au moment du MouseUp. il faut que tu tiennes compte de la
position de la souris au moment du MouseDown (pour corriger la position
du formulaire en fonction de la position du curseur sur le formulaire).

il faut localiser le formulaire à chaque déplacement de souris (évènement MouseMove).



les handlers sont incomplets (je l'ai écrit avec Scite !) et il faut
surement convertir les coordonnées (client/écran), mais le principe est
celui-là :



Dim doDrag As Boolean = False

Dim mousePos As Point = Point.Empty



Private Sub MouseDown(X As Integer, Y As Integer)


doDrag = True

mousePos = New Point(X, Y)


End Sub


Private Sub MouseMove(X As Integer, Y As Integer)


If doDrag = True Then


frm.Left = frm.Left - (mousePos.X - X)
frm.Top = frm.Top - (mousePos.Y - Y)


End If


End Sub


Private Sub MouseUp()


doDrag = False


End Sub





[ Dalida ]
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016

oupps, ça m'apprendra à mettre trop de temps pour répondre et pas actualiser la page avant de poster...



[ Dalida ]
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
14
Merci qd même Dalida,

Et pour Charles, bhààà regarde le titre de mon post ...


Chris...
Web : Firstruner