DragAndDrop inverser des couleurs [Résolu]

Signaler
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,

je cherche à inverser 2 backColor grâce aux events MouseMove, down, dragdrop etc...
J'ai pour l'instant réussi à copier une couleur dans un autre panel, mais comment récupérer la couleur de la cible pour la copier dans l'objet de départ ?

voilà un aperçu de se que j'obtient pour l'instant :

http://puu.sh/7TyTU.png

Et voici le code qui me permet d'effectuer cette opération (je n'ai mis que les parties concernées du code :

Private MouseIsDown As Boolean = False

Private Sub Panelcouleur_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Pblanc.MouseDown,[...] ,Pviolet.MouseDown
    MouseIsDown = True
End Sub

Private Sub panelCouleur_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Pblanc.MouseMove,[...] , Pviolet.MouseMove
    If MouseIsDown Then
        actualPanel = CType(sender, Panel)
        actualPanel.DoDragDrop(actualPanel.BackColor.Name, DragDropEffects.Copy Or DragDropEffects.Move)
    End If
    MouseIsDown = False
End Sub
Private Sub panelCouleur_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Pblanc.DragEnter,[...], Pviolet.DragEnter
    If (e.Data.GetDataPresent(DataFormats.Text)) Then
        e.Effect = DragDropEffects.Copy
    Else
        e.Effect = DragDropEffects.None
    End If
End Sub
Private Sub panelCouleur_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Pblanc.DragDrop,[...], Pviolet.DragDrop
    sender.backcolor = actualPanel.BackColor
End Sub


Merci :3

6 réponses

Messages postés
378
Date d'inscription
samedi 22 septembre 2012
Statut
Membre
Dernière intervention
13 août 2017
14
Bonjour Chihaya.

Il faudrait d'abord préciser ce que vous entendez par le contraire d'une couleur.

Cordialement
"récupérer la couleur de la cible pour la copier dans l'objet de départ ?" Autant pour moi, je ne l'ai peut-être pas dit correctement.
Dans l'exemple je copie la couleur du panel rouge dans le panel marron clair, mais j'aimerai ensuite que le premier panel rouge change de couleur et devienne marron clair. Je voudrai pouvoir Intervertir les couleurs de 2 panels.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Bonjour,
Utilise alors la propriété tag (par exemple).
Elle peut servir notamment à cela.
Merci beaucoup !! je ne connaissais pas cette propriété *-* il suffisait donc d'ajouter dans la procédure panelCouleur_DragDrop les 2 lignes suivantes :

actualPanel.Tag = sender.backcolor
sender.backcolor = actualPanel.BackColor 'ligne déjà présente dans le code d'origine
actualPanel.BackColor = actualPanel.Tag


Encore merci, problème résolu :3
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Content pour toi, mais veux-tu bien s'il te plait enlever ton + 1 ?
Je t'en remercie (bien évidemment), mais je préfère que l'on réserve cette "notation" aux réponses qui sortent vraiment de l'ordinaire.
Annule ce +1 en cliquant sur -1
Amitiés
ça ne me pose pas vraiment de problèmes, mais ça ne marche pas :/ j'ai juste le droit à un refresh de l'icone "+1"
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Bon...
je l'ai fait moi-même à ta place (il est maintenant à 0)