2009-03-21 3 views
4

Как реализовать Перетаскивание между моей программой и Проводником приложения уа окна толькоПеретаскивания

+0

Что такое "Программа"? Windows приложение? – Cerebrus

ответ

5

До тех пор, пока вы используете WinForms, на самом деле это очень просто. Смотрите эти две статьи, чтобы вы начали:

И только в случае, если вы используете WPF, this tutorial и this SO thread должно помочь.

1

Существует хорошая статья на CodeProject о том, как это сделать:

Этого пример проект перечисляет папку , полную файлов, и позволяет перетаскивать и отбросить их в Проводник. Вы также можете использовать перетаскивание из Проводника в образец, , и вы можете использовать клавиши Shift и Ctrl , чтобы изменить действие, точно так же как в Проводнике.

Drag and drop, cut/copy and paste files with Windows Explorer

Для начала операции перетаскивания в проводника, мы реализуем ItemDrag события из Listview, который получает вызывается после перетаскивания элемента больше , чем несколько пикселей. Мы просто вызываем DoDragDrop, передавая файлы , перетащенные в DataObject. Вам не нужно понимать DataObject - он реализует интерфейс IDataObject, используемый в сообщении .

1

Добавить это на Drag ввести событие (это изменит вид курсора при перетаскивании файла)

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; 
    } 

Тогда на событие DragDrop вам нужно обращаться, что делать НУ хотят сделать. А также уступят ли свойство AllowDrop действительным

Смежные вопросы