Drag'nDrop sur PictureBox Dynamiques [Résolu]

Messages postés
37
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
6 avril 2016
- - Dernière réponse : cs_Paounet
Messages postés
37
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
6 avril 2016
- 20 mars 2012 à 21:20
Bonjour à tous et merci d'avance pour vos éventuelles réponses...
Malgré mes recherches sur le Drga'nDrop je bute sur ce problème :

2 questions sur le Drag'nDrop sur des PictureBox créées dynamiquement
Pict(i) {i de 0 à 7)... Les événements MouseDown, MouseUp, DragDrop et DragEnter sont également créés dynamiquement avec AddHandler...

1ère question : En utilisant la souris,Comment faire un drag ' Drop entre 2 picturebox issus de Pict(i)..

2ème question : Même question que la précédente mais sans utilisation de la souris, c'est à dire automatiquement = Le drag'nDrop s'effectue mais la
souris ne pointe pas sur les objets PictureBox

Merci Paounet
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46
3
Merci
Salut
si tu veux
tu peux déplacer tes cartes sans le dragdrop
petit exemple

Private lastmouselocation As New Point
    Private mescartes As New List(Of PictureBox)
    Private Sub InitMescartes()
        Dim xp, yp As Integer
        xp = 10
        yp = 10
        For iter = 0 To 8
            Dim carte As New PictureBox
            With carte
                .Width = 100
                .Height = 100
                .BackColor = Color.Aquamarine
                .Location = New Point(xp, yp)
                AddHandler .MouseMove, AddressOf cartesmousemove
                AddHandler .MouseDown, AddressOf cartesmousedown
            End With
           me.Controls.Add(carte)
            mescartes.Add(carte)
            xp += carte.Width + 6
          
        Next
    End Sub


    Private Sub cartesmousemove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        Dim pt As New Point
        pt = e.Location
        If e.Button = Windows.Forms.MouseButtons.Left Then
            pt.X = (pt.X + DirectCast(sender, PictureBox).Left) - lastmouselocation.X
            pt.Y = (pt.Y + DirectCast(sender, PictureBox).Top) - lastmouselocation.Y
            DirectCast(sender, PictureBox).Location = pt
            DirectCast(sender, PictureBox).BringToFront()
        End If
    End Sub
    Private Sub cartesmousedown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        lastmouselocation = e.Location
    End Sub


c'est mieux de placer tes cartes dans une panel
pas directement sur la form

Dire « Merci » 3

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

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

Commenter la réponse de cs_ShayW
Messages postés
553
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
2
Commenter la réponse de Duke49
Messages postés
37
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
6 avril 2016
1
0
Merci
Merci de ta réponse Duke49 mais je ne comprends pas ta réponse via
le lien Microsoft...
Reexplication du Pb: J'ai créé 8 picturesbox Pict(i) pour i 0 de 7
(Ce sont des cartes de jeux)
For i = 0 To 7
Pict(i) = New PictureBox
Me.Controls.Add(Pict(i))
With Pict(i)
..... etc
.Location = New Point(X, Y)
.Image Liste_Cartes.Images(No(i)) : .Enabled True
.Tag = Val
.AllowDrop = True
.Visible = True
AddHandler Pict(i).DoubleClick, AddressOf Pict_DoubleClick
AddHandler Pict(i).MouseDown, AddressOf Pict_MouseDown
AddHandler Pict(i).MouseMove, AddressOf Pict_MouseMove
AddHandler Pict(i).DragEnter, AddressOf Pict_DragEnter
AddHandler Pict(i).DragDrop, AddressOf Pict_DragDrop
End With

1ère question : En utilisant la souris,Comment faire un drag ' Drop entre 2 picturebox issus de Pict(i)..

2ème question : Même question que la précédente mais sans utilisation de la souris, c'est à dire automatiquement = Le drag'nDrop s'effectue mais la souris ne pointe pas sur les objets PictureBox

Paounet
Commenter la réponse de cs_Paounet
Messages postés
37
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
6 avril 2016
1
0
Merci
Merci ShayW de ta réponse...
Quand à ta suggestion de les mettre dans un panel... Ce que j'avais fait
au départ, mais je suis heurté au problème de passer une carte par ex Pict(i) appartenant au panel Tapis1 vers le Panel TapisCentral, elle était invisible.. car les coordonnées ne correspondaient pas..
Je suppose que tu comprends le pb.

Malgré mes rcherches j'ai opté pour une solution ou toutes mes cartes sur
la feuille globale.
Paounet
Commenter la réponse de cs_Paounet