Drag and Drop d'une fenêtre principale sans bordures / .Net

Résolu
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 - 14 févr. 2006 à 14:31
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 - 14 févr. 2006 à 16:38
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

Utilisateur anonyme
14 févr. 2006 à 15:45
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
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
14 févr. 2006 à 15:59
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
Utilisateur anonyme
14 févr. 2006 à 16: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
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
14 févr. 2006 à 16:33
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 ]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
14 févr. 2006 à 16:35
oupps, ça m'apprendra à mettre trop de temps pour répondre et pas actualiser la page avant de poster...



[ Dalida ]
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
14 févr. 2006 à 16:38
Merci qd même Dalida,

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


Chris...
Web : Firstruner
0
Rejoignez-nous