Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2017, 14:40   #1
Dzoken
Новичок
Джуниор
 
Регистрация: 21.05.2017
Сообщений: 1
По умолчанию Не работает Drag and Drop. C#

Надо помощь. Не работает drag and drop.
Ошибка заключается вот тут: File.Copy(sourcePath, targetPath); File.Move(sourcePath, targetPath);.
Возможно,это из-за того,что неправильно поставил SubItems[0]
Вложения
Тип файла: 7z мойфайл.7z (328.4 Кб, 10 просмотров)
Dzoken вне форума Ответить с цитированием
Старый 25.05.2017, 19:46   #2
ZiDoxFix
Пользователь
 
Регистрация: 09.05.2015
Сообщений: 70
По умолчанию

Не понятно вы хотите в ListBox перетащить файлы? Если да то так:

Вот Вам пару примеров:

Код:
private void listBoxFiles_DragEnter(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy;
}
Затем тем же способом жмякаем на listBox_DragDrop
Код:
private void listBoxFiles_DragDrop(object sender, DragEventArgs e)
{
    string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
    foreach (string file in files)
        listBoxFiles.Items.Add(file);
}
И последний штрих :-)
Код:
private void Form1_Load(object sender, EventArgs e)
{
    listBoxFiles.AllowDrop = true; // обязательно.
    listBoxFiles.DragDrop += listBoxFiles_DragDrop;
    listBoxFiles.DragEnter += listBoxFiles_DragEnter;
}
Можно ещё сделать так:
Код:
private void listBox_DragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
            e.Effect = DragDropEffects.All;
        else
            e.Effect = DragDropEffects.None;
    }
 
    private void listBox_DragDrop(object sender, DragEventArgs e)
    {
        if (listBox.Items.Count != 0)
        {
            listBox.Items.Clear();
        }
        string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false);
        int i;
        for (i = 0; i < s.Length; i++)
            listBox.Items.Add(Path.GetFileName(s[i]));
    }
Можно добавить фильтр для определенного файла:[Пример]
Код:
private void listBox1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop, false))
            {
                bool allowFilesDrop = true;
                foreach (string f in (string[])e.Data.GetData(DataFormats.FileDrop, true))
                    allowFilesDrop = ((new FileInfo(f)).Extension == ".lvs");
                if (allowFilesDrop)
                    e.Effect = DragDropEffects.Move;
            }
        }
ZiDoxFix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает перетаскивание файлов на форму drag and drop. Помогите - внутри два идентичных примера - в одном все работает в другом - нет. Владимир1111 Общие вопросы Delphi 2 23.10.2016 18:43
Drag&Drop не работает в win8 через IDropTarget planetoxod Общие вопросы Delphi 6 06.03.2015 13:23
Drag and drop linkoln_7 ASP.NET 0 19.11.2014 22:22
Drag and Drop nusik Общие вопросы C/C++ 2 09.07.2009 11:09
Нужна помощь (Drag-And-Drop & Drag-Abd-Dock)) Arkuz Общие вопросы Delphi 1 18.04.2009 00:15