2009-03-21 8 views
4

Comment implémenter glisser-déposer entre mon programme et l'Explorateur Ya application Windows uniquementGlisser-déposer

+0

Qu'est-ce que c'est «Programme»? Application Windows? – Cerebrus

Répondre

1

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 la Listview, qui obtient appelé après que vous faites glisser un élément plus que quelques pixels. Nous appelons simplement DoDragDrop en passant les fichiers à être traîné enveloppé dans un DataObject. Vous n'avez pas vraiment besoin de comprendre DataObject - il implémente l'interface IDataObject utilisée dans la communication .

1

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