Comment implémenter glisser-déposer entre mon programme et l'Explorateur Ya application Windows uniquementGlisser-déposer
Répondre
Tant que vous utilisez WinForms, c'est en fait très simple. Voir ces deux articles pour vous aider à démarrer:
- Drag and Drop files from Windows Explorer to Windows Form
- Drag and Drop Text Files from Windows Explorer to your Windows Form Application
Et juste au cas où vous utilisez WPF, this tutorial et this SO thread devrait aider.
Il y a un bon article sur CodeProject sur la façon de le faire:
Cet exemple de projet énumère une dossier plein de fichiers, et vous permet de faire glisser et les déposer dans l'Explorateur. Vous pouvez également faire glisser de l'Explorateur dans l'exemple, et vous pouvez utiliser les touches Maj et Ctrl pour modifier l'action, tout comme dans l'Explorateur.
Drag and drop, cut/copy and paste files with Windows Explorer
Pour démarrer une opération de glisser dans Explorer, nous mettons en œuvre le
ItemDrag
événement de laListview
, qui obtient appelé après que vous faites glisser un élément plus que quelques pixels. Nous appelons simplementDoDragDrop
en passant les fichiers à être traîné enveloppé dans unDataObject
. Vous n'avez pas vraiment besoin de comprendreDataObject
- il implémente l'interfaceIDataObject
utilisée dans la communication .
Ajouter ceci sur l'événement enter Drag (cela va changer le type de curseur lorsque vous déplacez un fichier)
private void Form1_DragEnter(object sender, DragEventArgs e)
{
// If file is dragged, show cursor "Drop allowed"
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;
}
Puis l'événement DragDrop vous devez gérer ce faire ou qui veulent faire. Et également définir la propriété AllowDrop à true
Qu'est-ce que c'est «Programme»? Application Windows? – Cerebrus