Предоставление функции перетаскивания файлов в приложении Visual C#
В этой статье показано, как предоставить функции перетаскивания файлов в приложении Visual C#.
Исходная версия продукта: Visual C++
Исходный номер базы знаний: 307966
Сводка
Пошаговая процедура, описанная в этой статье, демонстрирует, как предоставить функции перетаскивания файлов в приложении Visual C#. Элемент ListBox
управления используется в качестве назначения процедуры перетаскивания файла.
Требования
В этом списке перечислены рекомендуемые оборудование, программное обеспечение, сетевая инфраструктура и пакеты обновления: Visual C#.
В этой статье предполагается, что вы знакомы со следующими разделами:
Windows Forms ListBox control
Windows Forms event handling
Действия по созданию примера
Элемент управления ListBox предоставляет два события перетаскивания, которые необходимо обработать: DragEnter
и DragDrop
. Это DragEnter
событие возникает при перетаскивании объекта в пределах элемента управления и используется для определения того, является ли перетаскиваемый объект объектом, который требуется удалить в элементе управления. Это событие обрабатывается в случаях, когда файл или файлы перетаскиваются в элемент управления . Это позволяет отображать соответствующий значок при перетаскивании объекта по элементу управления в зависимости от перетаскиваемого объекта. Событие DragDrop
возникает, когда перетаскиваемый объект был освобожден в элементе управления . Это событие обрабатывается для получения объекта . Объект Data используется для получения данных.
Метод объекта GetData
Data возвращает массив строк, содержащих полные имена путей файлов, которые были перетащится в ListBox
элемент управления . Эти сведения о пути к файлу можно использовать для выполнения любых операций, необходимых для файлов. Например, классы в System.IO
пространстве имен можно использовать для открытия и чтения файлов, перемещения файлов или копирования файлов в новое расположение. В этом примере вы просто добавляете полный путь к файлам, которые перетаскиваются в ListBox
элемент управления .
Чтобы предоставить функции перетаскивания файлов в приложении Visual C#, выполните следующие действия.
Создайте новое приложение Windows Forms в Visual C# .NET или Visual C# 2005. Форма Form1 создается по умолчанию.
Используйте панель элементов, чтобы добавить элемент управления в
ListBox
Form1.В окне Свойства измените
AllowDrop
свойствоListBox
элемента управления на True , чтобы разрешить перетаскивание объектов в элемент управления.В Обозреватель решений щелкните правой кнопкой мыши Form1 и выберите пункт Просмотреть код.
Чтобы обработать
DragEnter
событие, добавьте следующий метод под разделом кода, который форма Windows Form Designer создать вForm1
классе :private void listBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { if(e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.All; else e.Effect = DragDropEffects.None; }
Чтобы обработать
DragDrop
событие, добавьте следующий метод вForm1
класс сразу после метода, добавленного на шаге 5:private void listBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { string[] s = (string[]) e.Data.GetData(DataFormats.FileDrop, false); int i; for(i = 0; i < s.Length; i++) listBox1.Items.Add(s[i]); }
Чтобы связать два обработчика событий с событиями элемента управления, добавьте следующий код в
Form1
конструктор после вызоваInitializeComponent
:this.listBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop); this.listBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.listBox1_DragEnter);
Выполните сборку и запуск проекта.
Перетащите один или несколько файлов из рабочего стола или другой папки в элемент управления ListBox. Полный путь к файлам добавляется в
ListBox
элемент управления .
Ссылки
Дополнительные сведения см. на следующих веб-сайтах:
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по