Перетаскивание изображений в элемент PictureBox
Автор: Супротим Агарвал (Suprotim Agarwal) Эта статья была написана просто из любопытства. Я выполнял подобный прием с помощью веб-технологий и просто хотел попробовать, как он будет работать с Windows Forms. В этой короткой статье я описал последовательность шагов по реализации перетаскивания изображений в элемент PictureBox. Шаг 1. Откройте Visual Studio > Файл > Создать > Проект. В области "Типы проектов" выберите нужный язык (Visual C# или Visual Basic). В области "Шаблоны" выберите "Приложение Windows". Выберите имя и папку проекта, а затем нажмите кнопку ОК. Шаг 2. Теперь перетащите в форму элементы управления Button(btnImage) и PictureBox(picBox). Сначала добавим изображение на кнопку Button, а затем во время выполнения перетащим это изображение с кнопки Button в элемент PictureBox. Можно попробовать выполните те же действия с другими элементами управления, поддерживающими свойство изображения. Теперь попробуем описать словами, как происходит весь процесс перетаскивания. Пользователь наводит указатель мыши на кнопку, нажимает ее и вместо того, чтобы просто отпустить кнопку мыши, перетаскивает изображение на элемент PictureBox. Нужно обработать следующие события. Событие MouseDown кнопки Button — обрабатывается, когда указатель мыши находится над кнопкой Button и нажимается кнопка мыши. Событие DragEnter элемента PictureBox — это событие будет обрабатываться при перетаскивании изображения Picture в границы элемента PictureBox. Событие DragDrop элемента PictureBox — возникает при завершении операции перетаскивания. Шаг 3. С этими входными данными двинемся дальше и добавим в нашу форму немного кода. В файле Form1.cs или Form1.vb добавьте следующий код в конструктор формы C#
VB.NET
В приведенном выше коде добавляется изображение на кнопку Button, а также регистрируются события для элементов PictureBox и Button. Шаг 4. Следующим этапом будет добавление кода для перечисленных выше событий: C#
VB.NET
В событии btnImage_MouseDown для отправителя вызывается метод DoDragDrop. Этот метод начинает операцию перетаскивания и принимает в качестве параметра перетаскиваемый объект и эффект перетаскивания в качестве второго параметра. В pictureBox_DragEnter мы проверяем, существуют ли в объекте указанные данные type(Bitmap). Этот метод вызывается перед GetData(). Наконец в pictureBox_DragDrop вызывается DrawImage(), получающий в качестве параметров указанное изображение и указанное положение, а затем рисующий часть изображения в элементе . Это все. Запустите пример, и вы сможете выполнять операции перетаскивания на элемент PictureBox. Я надеюсь, эта статья была полезной, и благодарю за то, что вы ее прочитали. Если статья понравилась, подпишитесь на мой RSS-канал. |