# 34 Уроки C# – Drag and Drop – Часть 1 – Перетаскивание файлов – Drag n Drop
00:00 Введение в Drag and Drop • Обсуждение популярности темы Drag and Drop. • Объяснение, как работать с файлами и папками через Drag and Drop. • Упоминание о домашней работе ученика, который успешно справился с заданием по RegEx. 00:59 Создание области для Drag and Drop • Добавление панели на форму для создания области Drag and Drop. • Настройка цвета и границы панели. • Установка свойства AllowDrop для панели. 01:56 Обработка событий Drag Enter, Drop и Leave • Создание обработчиков для событий Drag Enter, Drop и Leave. • Объяснение работы событий Drag Enter: перетаскивание элемента в клиентскую область. • Drop: завершение операции перетаскивания. • Leave: выход объекта за пределы элемента управления. 02:54 Добавление метки • Добавление метки с текстом «Перетащите файлы сюда». • Настройка автосайза и выравнивания метки. 04:05 Анализ аргументов события Drag Enter • Получение данных из аргумента события Drag Enter. • Использование GetDataPresent для определения формата данных. • Проверка, является ли объект перетаскиваемым файлом. 06:41 Настройка эффекта перетаскивания • Выбор эффекта перетаскивания «копия». • Демонстрация работы эффекта копирования. 08:25 Обработка события Leave • Обновление текста метки при выходе объекта за пределы панели. • Проверка работы события Leave. 09:24 Обработка события Drop • Извлечение данных из аргумента события Drop. • Преобразование данных в формат файла. • Запись данных в массив для обработки нескольких файлов. 10:19 Работа с массивом файлов • Создание массива для хранения брошенных файлов. • Пример конвертации строки в массив. 10:54 Работа с файлами • Программа показывает путь к файлу, перетянутому в окно. • Для отображения пути используется `ToString()`. • Пример работы с одним файлом. 11:54 Обработка нескольких файлов • При перетаскивании нескольких файлов программа показывает последний файл. • Использование `ForEach()` для обработки каждого файла. • Пример отображения путей нескольких файлов. 12:46 Удаление файлов • Демонстрация удаления файлов через `ForEach()`. • Создание файла и его удаление при перетаскивании. 13:46 Работа с папками • Проверка существования директории перед обработкой. • Создание массива для хранения файлов и папок. • Использование `List﹤﹥` для организации данных. 16:32 Добавление файлов в список • Получение массива файлов из директории. • Добавление файлов в список через `AddRange()`. • Обработка случаев, когда перетаскивается файл или папка. 18:56 Отображение результатов • Преобразование списка в строку для отображения. • Проверка работы программы с папками и файлами. • Устранение конфликтов при перетаскивании файлов и папок. 19:53 Заключение • Подчёркивание важности проверки существования директории. • Анонс следующего видео о улучшении зоны drag-and-drop. 20:21 Проблемы с User Account Control и Drag and Drop • Без отключённого User Account Control невозможно нормально использовать Drag and Drop. • Существует обходной путь, но он требует разрешения небезопасного кода. • Предлагается использовать событие на клик для обхода контроля учётной записи. 21:14 Проверка состояния User Account Control • Программа проверяет состояние User Account Control через реестр. • Если контроль включён, текст меняется на «Кликните сюда, чтобы выбрать файл». • Двойной клик на панель вызывает диалог для выбора файла. 22:09 Создание Open File Dialog • Создаётся экземпляр Open File Dialog. • Задаётся заголовок диалога «Укажите какой-нибудь файл». • Указывается директория для поиска файлов, например, рабочий стол. 24:09 Проверка работы диалога • Проверяется работа диалога при клике на панель. • Диалог открывается с заголовком и предлагает выбрать файл с рабочего стола. • После выбора файла его имя записывается в label. 25:07 Заключение и анонс следующей части • Подчёркивается необходимость обхода User Account Control для работы с Drag and Drop. • Анонсируется следующая часть видео о создании красивой зоны для Drag and Drop. • Призыв поставить лайк и перейти к следующей части.
00:00 Введение в Drag and Drop • Обсуждение популярности темы Drag and Drop. • Объяснение, как работать с файлами и папками через Drag and Drop. • Упоминание о домашней работе ученика, который успешно справился с заданием по RegEx. 00:59 Создание области для Drag and Drop • Добавление панели на форму для создания области Drag and Drop. • Настройка цвета и границы панели. • Установка свойства AllowDrop для панели. 01:56 Обработка событий Drag Enter, Drop и Leave • Создание обработчиков для событий Drag Enter, Drop и Leave. • Объяснение работы событий Drag Enter: перетаскивание элемента в клиентскую область. • Drop: завершение операции перетаскивания. • Leave: выход объекта за пределы элемента управления. 02:54 Добавление метки • Добавление метки с текстом «Перетащите файлы сюда». • Настройка автосайза и выравнивания метки. 04:05 Анализ аргументов события Drag Enter • Получение данных из аргумента события Drag Enter. • Использование GetDataPresent для определения формата данных. • Проверка, является ли объект перетаскиваемым файлом. 06:41 Настройка эффекта перетаскивания • Выбор эффекта перетаскивания «копия». • Демонстрация работы эффекта копирования. 08:25 Обработка события Leave • Обновление текста метки при выходе объекта за пределы панели. • Проверка работы события Leave. 09:24 Обработка события Drop • Извлечение данных из аргумента события Drop. • Преобразование данных в формат файла. • Запись данных в массив для обработки нескольких файлов. 10:19 Работа с массивом файлов • Создание массива для хранения брошенных файлов. • Пример конвертации строки в массив. 10:54 Работа с файлами • Программа показывает путь к файлу, перетянутому в окно. • Для отображения пути используется `ToString()`. • Пример работы с одним файлом. 11:54 Обработка нескольких файлов • При перетаскивании нескольких файлов программа показывает последний файл. • Использование `ForEach()` для обработки каждого файла. • Пример отображения путей нескольких файлов. 12:46 Удаление файлов • Демонстрация удаления файлов через `ForEach()`. • Создание файла и его удаление при перетаскивании. 13:46 Работа с папками • Проверка существования директории перед обработкой. • Создание массива для хранения файлов и папок. • Использование `List﹤﹥` для организации данных. 16:32 Добавление файлов в список • Получение массива файлов из директории. • Добавление файлов в список через `AddRange()`. • Обработка случаев, когда перетаскивается файл или папка. 18:56 Отображение результатов • Преобразование списка в строку для отображения. • Проверка работы программы с папками и файлами. • Устранение конфликтов при перетаскивании файлов и папок. 19:53 Заключение • Подчёркивание важности проверки существования директории. • Анонс следующего видео о улучшении зоны drag-and-drop. 20:21 Проблемы с User Account Control и Drag and Drop • Без отключённого User Account Control невозможно нормально использовать Drag and Drop. • Существует обходной путь, но он требует разрешения небезопасного кода. • Предлагается использовать событие на клик для обхода контроля учётной записи. 21:14 Проверка состояния User Account Control • Программа проверяет состояние User Account Control через реестр. • Если контроль включён, текст меняется на «Кликните сюда, чтобы выбрать файл». • Двойной клик на панель вызывает диалог для выбора файла. 22:09 Создание Open File Dialog • Создаётся экземпляр Open File Dialog. • Задаётся заголовок диалога «Укажите какой-нибудь файл». • Указывается директория для поиска файлов, например, рабочий стол. 24:09 Проверка работы диалога • Проверяется работа диалога при клике на панель. • Диалог открывается с заголовком и предлагает выбрать файл с рабочего стола. • После выбора файла его имя записывается в label. 25:07 Заключение и анонс следующей части • Подчёркивается необходимость обхода User Account Control для работы с Drag and Drop. • Анонсируется следующая часть видео о создании красивой зоны для Drag and Drop. • Призыв поставить лайк и перейти к следующей части.
