Drag an Drop VB.Net

cs_pipic Messages postés 50 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 9 décembre 2003 - 8 déc. 2003 à 15:28
cs_radada Messages postés 488 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 21 avril 2009 - 8 déc. 2003 à 16:53
Bonjour a tous,

j'ai un @#&*§§!! de probleme sur lequel je suis depuis plusieurs jours et que je n'arrive pas a solutionner

Je possede une picturebox (picturB) et un linklabel (linklab). je dois effectuer un drag and drop doit sur l'image, qui ne peut etre deplacée que sur le formulaire (form_parent) ou elle se trouve.
lorsque je deplace l'image, le linklab qui lui est associé doit etre deplacé avec (d'ou la modification des localisations dans la methode form_parent_Dragdrop)
remarque : j'ai crée une classe noeud qui me permet de créer automatiquement mon image associée à mon linklabel

Private Sub picturB_MouseDown(ByVal sender As Object, ByVal e as System.Windows.Forms.MouseEventArgs) Handles picturB.MouseDown 
        picturB.DoDragDrop(picturB.Image, DragDropEffects.Move)
End Sub 

Private Sub form_parent_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles form_parent.DragEnter 
        If e.Data.GetDataPresent(DataFormats.Bitmap) Then 
            e.Effect = DragDropEffects.Move
        End If 
End Sub 

Private Sub form_parent_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles form_parent.DragDrop 
        picturB.Location = New Point(e.X, e.Y) 
        LinkLab.Location = New Point(e.X + 20, e.Y) 
End Sub



j'ai 2 problemes avec ce code :
- le drop s'effectue sur tous les obets et les place tous sur le meme endroit
- la localisation n'est pas correcte. l'objet se depose généralement plus bas et sur la gauche de l'endroit qui lui est spécifié. Je pense que cela vient d'une mauvaise utilisation de e.X et e.Y

voilà, savez vous d'ou peut venir mon probleme?
merci d'avance

ByeBye pipic.... ;)

5 réponses

cs_radada Messages postés 488 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 21 avril 2009 1
8 déc. 2003 à 15:51
J'ai pas tout suivi... C'est quoi le rapport entre le bitmap, le label et le drag and drop???, Tu drop un bitmap sur ta form, il s'affiche à l'endroit de la souris et là, il y un label qui apparait, et ensuite quand tu bouge ton bitmap, le label suit??? C'est ça????
0
cs_pipic Messages postés 50 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 9 décembre 2003
8 déc. 2003 à 16:01
j'ai p.e mal expliqué le pb effectivement...

Sur mon form j'ai un bitmap qui s'affiche avec un label (ce qui correspond a un noeud et j'en ai trois comme ca). Ce que je voudrais c'est tout simplement pouvoir appliquer un drag and drop a mon noeud (image + label).

le probleme c que le drop ne fonctionne pas correctement puisque mon noeud ne s'affiche pas a la position de la souris mais en décalé.
Puis lesecond probleme c'est que lorsque je drag and drop mon 2eme noeud, c'est le 1er qui va s'afficher avec une superpositions des autres....

Ai je été plus claire ???

Merci pour ton aide


ByeBye pipic....
0
cs_radada Messages postés 488 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 21 avril 2009 1
8 déc. 2003 à 16:06
Et tes noeuds, c'est une gestion via des list view/tree view ou cela n'a rien à voir??? Ou c'est simplement 3 bitmap affichés dynamiquement en décalé????
0
cs_pipic Messages postés 50 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 9 décembre 2003
8 déc. 2003 à 16:21
Non ca n'a rien a voir avec un tree ou list view.... c comme tu l'as dit une gestion drag and drop de 3 bitmaps affichés en décalé.

ByeBye pipic....
0

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

Posez votre question
cs_radada Messages postés 488 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 21 avril 2009 1
8 déc. 2003 à 16:53
Ben tu ne peux pas gérer tes draganddrop au niveau de chaque objet (Bitmpa + label) alors plutot qu'a un niveau global (Form Parent)??? Pour ton décalage, essaie d'utiliser Me plutot que e pour voir, on ne sait jamais. Tu dois l'afficher p/rau coin sup. de ta form non?? Utilise 2 variables globales que tu initialise à Form1.top et Form1.Left avant de faire ton repositionnement et ensuite, tu calcul ton affichage p/r à ces variables et à la taille de tes bitmap et au noeud cliqué (1, 2 ou 3 -> cela revient à faire une règle de trois je pense en fonction de ton noeud..). Je ne sais pas si cela t'aide bcp, mais avec ces explications, c'est tout ce que je vois pour l'instant.... Mais je pense que je me trompe, j'ai pas du tout comprendre, je suis un peu fraca en fait lol :D:D
0
Rejoignez-nous