Bonsoir à tous,

je cherche à copier un control depuis un panel dans un autre panel via un drag and drop.

J'ai réussi à gérer le drag and drop sans trop de soucis, mais lorsque je copie le contrôle, il est en réalité déplacé.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Private Sub pnVisuDessin_DragDrop(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles pnVisuDessin.DragDrop
 
Dim Element As Windows.Forms.Panel = CType(e.Data.GetData("System.Windows.Forms.Panel";), Panel)
        'Coordonnees de l'élément dans le panel à partir des coordonnées de la souris
        Element.Location = New Point(e.X - (Me.MdiParent.Left + Me.Left + pnVisuDessin.Left), e.Y - (Me.Top + pnElements.Top))
        'On ajoute l'élement au panel
        Me.pnVisuDessin.Controls.Add(Element)
 
End Sub
Je pense que ça vient du fait que lorsque j’écris Element=e..., en fait il associe les 2 contrôles.


Question subsidiaire:
comment je peux convertir les coordonnées de la souris (coordonnées écran) en coordonnées dans mon form.
Pour l'instant j'ai bidouillé une formule, mais elle ne tient pas compte des épaisseurs de fenêtre, ni de ma form MDIparent.