Добавьте поддержку загрузки файлов с помощью интуитивно понятного перетаскивания.
Многие современные приложения работают с файлами, которые пользователь может загрузить в свою систему. Редакторы изображений, IDE кода и текстовые процессоры — все это примеры. Если вы создаете приложение Windows Form, вы можете легко добавить эту функциональность как часть пользовательского интерфейса.
Приложения Windows Form позволяют перетаскивать элементы пользовательского интерфейса, такие как панели или списки. Вы можете использовать эти элементы пользовательского интерфейса для создания функций перетаскивания. Когда пользователь перетаскивает файл на панель, вы можете отобразить отзыв на основе этого файла.
Как создать пользовательский интерфейс для контейнера перетаскивания
Вы можете использовать элемент панели для создания пользовательского интерфейса для функции перетаскивания. Затем вы можете использовать элемент пользовательского интерфейса ListBox для отображения имен любых файлов, которые пользователь перетаскивает на панель.
- Создайте новое приложение Windows Forms.
- На панели инструментов найдите элемент пользовательского интерфейса панели и перетащите его на холст.
- Выделите новую панель. В окне свойств измените значения следующих свойств:
Свойство
Новое значение
Имя
dragDropPanel
НазадЦвет
Белый дым
ГраницаСтиль
ФиксированныйОдиночный
Размер
600, 400
Видимый
Истинный
- На панели инструментов найдите элемент пользовательского интерфейса ListBox и перетащите его на холст. Расположите его так, чтобы он находился внутри панели, и убедитесь, что между ListBox и панелью есть некоторое расстояние.
- Выделите новый ListBox и измените значения следующих свойств:
Свойство
Новое значение
Имя
загруженный список файлов
НазадЦвет
Белый дым
ГраницаСтиль
Никто
Размер
500, 300
Видимый
ЛОЖЬ
Как добавить событие перетаскивания
Вы можете использовать события в приложении Windows Form выполнять определенные функции только при возникновении определенных событий.
Чтобы добавить функциональность панели перетаскивания, вам нужно добавить два события. Событие «DragEnter» произойдет, когда вы перетащите файлы на панель. Событие «DragDrop» произойдет, когда вы отпустите кнопку мыши, чтобы перетащить файлы на панель.
- Выделите элемент пользовательского интерфейса внешней панели.
- В окне свойств нажмите кнопку Осветление значок, чтобы открыть список событий.
- Дважды щелкните на ПеретащитеВведите событие для создания новой функции. Эта функция будет выполняться, когда вы перетаскиваете файлы на панель.
- Внутри новой функции измените значок мыши, чтобы указать действие перетаскивания:
частныйпустотаdragDropPanel_DragEnter(отправитель объекта, DragEventArgs e)
{
// Изменяет иконку мыши
е. Эффект = DragDropEffects. Все;
} - Нажать на Форма 1.cs [Дизайн] в верхней части окна Visual Studio, чтобы вернуться к представлению холста. Выделите элемент пользовательского интерфейса панели.
- В окне свойств нажмите кнопку Осветление значок, чтобы вернуться к списку событий. На этот раз дважды щелкните по Перетаскивания событие. Это сгенерирует другую функцию, которая будет выполняться, когда вы отпустите кнопку мыши, чтобы перетащить файлы на панель.
- Внутри новой функции DragDrop получите список файлов, которые пользователь перетаскивает на панель. Вы можете найти это в деталях события, которые автоматически передаются в функцию.
частныйпустотаdragDropPanel_DragDrop(отправитель объекта, DragEventArgs e)
{
строка[] файлы = (строка[])e. Данные. Получить данные (форматы данных. FileDrop, ЛОЖЬ);
}
Как отобразить список перетаскиваемых файлов
Теперь, когда вы добавили пользователю возможность перетаскивания файлов, вы можете отображать имена файлов с помощью элемента пользовательского интерфейса ListBox.
- Внутри функции dragDropPanel_DragDrop() после получения списка файлов используйте цикл for для перебора каждого файла.
для каждого (вар файл в файлах)
{
} - Внутри цикла for получите только имя файла. Отделите имя файла от пути к файлу и сохраните его в отдельной переменной. Если вы используете Mac, вам может потребоваться изменить код, чтобы он учитывал прямую косую черту, а не обратную косую черту.
строка имя_файла = файл. Подстрока (файл. ПоследнийИндексОф("\\") + 1, файл. Длина - (файл. ПоследнийИндексОф("\\") + 1));
- Добавьте имя файла в элемент пользовательского интерфейса ListBox.
пытаться
{
загруженный список файлов.Предметы.Добавлять(имя файла);
}
ловить (Исключениеисключение)
{
Консоль. НаписатьСтроку(исключение);
} - ListBox не отображается по умолчанию. После цикла for измените видимость ListBox на true:
список загруженных файлов. Видимый = истинный;
- Измените конструктор в верхней части файла. Установить Разрешить падение и Автопрокрутка свойства панели перетаскивания на true.
публичный Форма1()
{
ИнициализироватьКомпонент();
перетащить панель. Разрешить падение = истинный;
перетащить панель. Автопрокрутка = истинный;
}
Как очистить список
После того, как пользователь перетащит элементы на панель, он может захотеть очистить список и начать заново. Вы можете добавить кнопку для очистки списка, когда пользователь нажимает на нее.
- Используя панель инструментов, перетащите кнопку на холст.
- Выделите кнопку. Используйте окно свойств, чтобы изменить следующие свойства на новые значения:
Свойство
Новое значение
Имя
ClearButton
Текст
Прозрачный
- Дважды щелкните кнопку, чтобы сгенерировать новую функцию. Эта функция будет выполняться при нажатии кнопки во время выполнения:
частныйпустотаclearButton_Click(отправитель объекта, EventArgs e)
{}
- Внутри функции очистите содержимое элемента пользовательского интерфейса ListBox и скройте его:
частныйпустотаclearButton_Click(отправитель объекта, EventArgs e)
{
загруженный список файлов.Предметы.Прозрачный();
список загруженных файлов. Видимый = ЛОЖЬ;
}
Как протестировать панель перетаскивания
Чтобы проверить функциональность перетаскивания, запустите приложение и перетащите несколько файлов на панель. При необходимости вы также можете отлаживать приложение Winforms в Visual Studio во время выполнения. Это поможет вам понять, что происходит в каждой строке кода.
- Нажмите зеленую кнопку воспроизведения в верхней части окна Visual Studio, чтобы запустить приложение.
- Перетащите несколько файлов из проводника на панель. Убедитесь, что вы не используете Visual Studio в режиме администратора. Вам нужно будет настроить дополнительные разрешения безопасности для перетаскивания для работы в режиме администратора.
- Панель обновится, чтобы показать вам имена файлов, которые вы перетащили на панель.
- Перетащите достаточное количество файлов, и вы увидите, что панель перетаскивания автоматически отображает полосу прокрутки с правой стороны.
- Нажать на Прозрачный кнопку, чтобы очистить список.
Использование функции перетаскивания в приложениях Windows Form
Теперь вы, надеюсь, понимаете, как добавить функцию перетаскивания в ваше приложение Windows Form. Есть много других функций, которые вы можете изучить, чтобы делать интересные вещи с Windows Forms.