cs_Paounet
Messages postés36Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention 6 juin 2023
-
18 mars 2012 à 13:03
cs_Paounet
Messages postés36Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention 6 juin 2023
-
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
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 19 mars 2012 à 21:43
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
cs_Paounet
Messages postés36Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention 6 juin 20233 18 mars 2012 à 22:03
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
cs_Paounet
Messages postés36Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention 6 juin 20233 20 mars 2012 à 21:20
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