J'ai une liste de fichiers avec leurs noms dans une listbox et leur contenu stocké dans une table SQL et je veux que l'utilisateur de mon application puisse sélectionner un ou plusieurs noms de fichiers dans la listbox et les faire glisser sur le bureau, donnant les fichiers réels sur le bureau. Je ne trouve aucune documentation sur la façon de procéder. Quelqu'un peut-il expliquer ou pointer vers une explication?Implémenter le glisser-déposer sur le bureau à partir d'une application .net winforms?
Ajouté plus tard: J'ai été capable de faire ce travail en gérant l'événement DragLeave. Dans ce document, je crée un fichier dans un répertoire temporaire avec le nom sélectionné et le contenu extrait de SQL Server. Je mets alors le chemin du fichier dans l'objet:
var files = new string[1];
files[0] = "full path to temporary file";
var dob = new DataObject();
dob.SetData(DataFormats.FileDrop, files);
DoDragDrop(dob, DragDropEffects.Copy);
Mais cela semble très inefficace et maladroite, et je ne l'ai pas encore trouvé un bon moyen de se débarrasser des fichiers temporaires accumulés.
Je comprends cela, mais ce que je ne comprends pas, c'est où foo.txt est créé et rempli avec son contenu de la table SQL. – mlo
Est-il possible d'ajouter le "c: /foo.txt" mais lorsque le glisser est terminé, déposez le fichier avec un nouveau nom de fichier comme "new foo.txt"? – Nooneelse