Перетащить - PullRequest
       7

Перетащить

4 голосов
/ 21 марта 2009

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

Ответы [ 3 ]

5 голосов
/ 21 марта 2009

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

И на всякий случай, если вы используете WPF, этот учебник и этот SO поток должен помочь.

1 голос
/ 21 марта 2009

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

 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 значение true

1 голос
/ 21 марта 2009

В CodeProject есть хорошая статья о том, как это сделать:

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

Перетаскивание, вырезание / копирование и вставка файлов с помощью Проводника Windows

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...