Перетащите из окна формы на рабочий стол и Windows Explorer - PullRequest
5 голосов
/ 22 ноября 2011

В последнее время мне было трудно реализовать функцию перетаскивания за пределы оконных форм.У меня нет проблем с перетаскиванием внутри и между формами окон и с рабочего стола в форму окон.Я создал приложение, где вы можете перетащить любой элемент на него.Моя проблема в том, что я не знаю, как реализовать обратное для моего приложения, перетаскивать его из моего приложения на рабочий стол или в любое место за пределами формы.Любые советы и идеи я с благодарностью приму.Спасибо.

мы говорим о файлах и папках здесь хорошо:)

1 Ответ

0 голосов
/ 23 ноября 2011

Я не знаю, какой контроль вы используете; большинство элементов управления .net имеют метод DoDragDrop. Пожалуйста, используйте этот метод, если вам подходит.

private void PopulateListView()
{ 
    string directoryPath=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    String[] files=System.IO.Directory.GetFiles(directoryPath);
    if(files!=null)
    {
        foreach(string file in files)
        {
            listView1.Items.Add(new ListViewItem(file));
        }
    }
}


private void listView1_MouseDown(object sender, MouseEventArgs e)
{
    System.Collections.Specialized.StringCollection filePath = new
    System.Collections.Specialized.StringCollection();
    if (listView1.SelectedItems.Count > 0)
    { 
        filePath.Add(listView1.SelectedItems[0].Text);
        DataObject dataObject = new DataObject();
        dataObject.SetFileDropList(filePath);
        listView1.DoDragDrop(dataObject, DragDropEffects.Copy);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...