[VB.Net]Drag and drop

Drag and drop [VB.Net] - VB/VBA/VBS - Programmation

Marsh Posté le 28-12-2011 à 20:39:09    

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 :
  1. Private Sub pnVisuDessin_DragDrop(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles pnVisuDessin.DragDrop
  2.      
  3. Dim Element As Windows.Forms.Panel = CType(e.Data.GetData("System.Windows.Forms.Panel";), Panel)
  4. 'Coordonnees de l'élément dans le panel à partir des coordonnées de la souris
  5.         Element.Location = New Point(e.X - (Me.MdiParent.Left + Me.Left + pnVisuDessin.Left), e.Y - (Me.Top + pnElements.Top))
  6.                'On ajoute l'élement au panel
  7.         Me.pnVisuDessin.Controls.Add(Element)
  8.     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.


Message édité par astik89 le 28-12-2011 à 20:39:28
Reply

Marsh Posté le 28-12-2011 à 20:39:09   

Reply

Marsh Posté le 29-12-2011 à 10:53:43    

Voir http://msdn.microsoft.com/en-us/li [...] s.85).aspx
 
Attention, Microsoft a eu l'idée (géniale  :pt1cable: ) de changer le célèbre ClientToScreen en PointToScreen.

Reply

Marsh Posté le 29-12-2011 à 11:49:27    

Merci
J'ai utilisé la fonction inverse, PointToClient et ça fonctionne.
 
Concernant la copie du contrôle, je pense que je vais en créer un nouveau et lui affecter les propriétés.
A moins que quelqu'un ait une solution?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed