Chihaya
-
Modifié par Chihaya le 5/04/2014 à 15:10
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
6 avril 2014 à 13:24
Bonjour,
Après avoir réussi a finir mon TP, j'ai voulu tester plusieurs choses.
Plutôt que de créer des panels directement dans la Form, j'ai voulu les créer dans le code
For i = 0 To 20
For j = 0 To 19
Dim P As New Panel
TLPcouleur.Controls.Add(P)
P.BackColor = Color.FromArgb(Int(255 * Rnd()), Int(255 * Rnd()), Int(255 * Rnd()))
AddHandler P.Click, AddressOf panelCouleur_click
AddHandler P.DoubleClick, AddressOf panelCouleur_Doubleclick
AddHandler P.MouseDown, AddressOf Panelcouleur_MouseDown
AddHandler P.MouseMove, AddressOf panelCouleur_MouseMove
AddHandler P.DragEnter, AddressOf panelCouleur_DragEnter
AddHandler P.DragDrop, AddressOf panelCouleur_DragDrop
Next
Next
Je leurs ajoute donc les events dont j'ai besoin
Le problème est que les seuls event qui fonctionnent sont Click, DoubleClick, mouseDown et MouseMove, les events DragEnter et DragDrop ne fonctionnent plus et j'ignore pourquoi.
Le code pour les 4 Sub des events nécessaires pour mon DragandDrop sont les suivantes :
Private Sub panelcouleur_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
MouseIsDown = True
End Sub
Private Sub panelCouleur_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
If Not tmrAvancer.Enabled Then
If MouseIsDown Then
actualPanel = CType(sender, Panel)
actualPanel.DoDragDrop(actualPanel.BackColor.Name, DragDropEffects.Copy Or DragDropEffects.Move)
End If
MouseIsDown = False
End If
End Sub
Private Sub panelCouleur_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs)
If Not tmrAvancer.Enabled Then
If (e.Data.GetDataPresent(DataFormats.Text)) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End If
End Sub
Private Sub panelCouleur_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs)
If Not tmrAvancer.Enabled Then
actualPanel.Tag = sender.backcolor
sender.backcolor = actualPanel.BackColor
actualPanel.BackColor = actualPanel.Tag
End If
End Sub
ne prenez pas en compte les "if...end if" avec "Not tmrAvancer.Enabled ", il ne concerne pas mon problème.
TLPcouleur est un TableLayoutPanel de 21 colonnes et 20 lignes
Quelqu'un à une idée d'où vient mon problème ?
Si vous avez besoin de précisions sur quelque chose n'hésitez pas à me demander :3