Bonsoir ou bonjour à tous
J'ai souvent vu des gens qui se posaient comme question :
Je sais faire un Drag and Drop, mais comment puis-je faire pour "integrer" l'image que je veux comme "icone" du drag and Drop ?
Ayant trouvé la réponse ce soir (en fait, je m'amusais avec le Framework)
Je vous livre une façon que j'ai trouvé de faire qui me parait vraiment simple.
Le principe de base est simple.
Lors d'un DragAndDrop, l'event GiveFeedBack permet de demander à un controle sur lequel à lieu le Drag un retour...
Dans cette callback, en parametre est passé un GiveFeedBackEventArg.
Dans ce paramètre on trouve notamment la propriété :
e.UseDefaultCursors
et e.Effect
Pour mettre mon curseur à moi, je fais donc ainsi :
Jusqu'à là, rien de bien exceptionnel...(de toute façon, j'ai jamais prétendu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private void Form1_GiveFeedback(object sender, GiveFeedbackEventArgs e) { e.UseDefaultCursors = false; if (e.Effect == DragDropEffects.All) { Cursor.Current = cur; } }
inventer quoique ce soit ce soir
L'objet cur , est défini comme suit :
private Cursor cur;
ET dans le constructeur de la form (dans mon exemple bien sur ultra simple)
Et voila
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Image img = Image.FromFile(@"C:photo.JPG"); Bitmap bit = new Bitmap(img, new Size(100, 100)); cur = new Cursor(bit.GetHicon());
Donc, j'ai dynamiquement crée un curseur à partir d'une image... et
ensuite, lors du drag and drop, j'utilise ce curseur
On imagine tout de suite que lorsqu'on souhaite Drag & Dropper une image
depuis son application ou depuis l'explorateur, on pourrait tres bien afficher
comme "icone" de Drag cette image à la taille que l'on veut plutot que
les classiques icones (avec le rectangle et le +)...
Voila. c'était le cadeau du soir... pas révolutionnaire mais qui servira peut-etre
à certains d'entre vous
The Monz, Toulouse
Partager