Путь разработчика    

Рисование, перемещение и удаление сегментов линии в C#

Рекомендуем: Почему у разных моделей шипованных шин разное количество шипов
eda2480d

В этом примере показано, как сделать программу рисования, которая позволяет рисовать, перемещать и удалять сегменты линии. Он основан на примере
Нарисуйте и переместите сегменты линии на C# . См. Этот пример для получения информации о том, как программа позволяет рисовать и перемещать сегменты линии.

В этом примере добавлена возможность удалять сегмент линии, перетаскивая его в корзину. Для этого программа должна рисовать мусорную корзину и обнаруживать, когда вы перемещаете на нее сегмент.

Во время разработки я добавил файлы ресурсов мусора (PNG-файл с прозрачным фоном) к ресурсам программы. (Откройте меню «Проект» и выберите «Свойства». На вкладке «Ресурсы» откройте раскрывающееся меню «Добавить ресурс» и выберите «Добавить существующий файл».) Когда программа запускается, следующий код получает размеры мусорного контейнера.

Python

Этот код определяет переменные TrashWidth и TrashHeight. Обработчик события Load формы устанавливает эти значения в размеры мусора, умноженные на масштабный коэффициент.

Обработчик событий PaintBox Paint рисует текущие сегменты строк, как в предыдущем примере. Затем он использует следующий код для рисования корзины в верхнем левом углу.

Python

Этот код просто создает прямоугольник в верхнем левом углу PictureBox, который имеет необходимые размеры мусорного ящика. Затем он вызывает e.DrawImage для рисования корзины.

Последний и самый интересный фрагмент нового кода удаляет сегмент, когда пользователь бросает его в корзину.

Когда вы перетаскиваете сегмент в новое место и затем отпустите мышь, выполняется следующий обработчик событий. Новый код отображается синим цветом.

Python

Этот код сбрасывает обработчики событий PictureBox для ситуации, когда пользователь ничего не перетаскивает. Затем новый код определяет, находится ли мышь над корзиной. Если это так, программа запрашивает у пользователя, следует ли удалять сегмент линии. Если пользователь нажимает «Да», программа удаляет точки, которые определяют сегмент, который был перетащен.

Источник: http://csharphelper.com/blog/2015/01/draw-move-delete-line-segments-c/



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:


Как вычислить вероятность события, происходящего в данном количестве испытаний в C#

Сообщение Понять вероятности несвязанных событий (и избежать зомби) объясняет, как рассчитать вероятность события, происходящего в определенном количестве...

21 06 2021 10:27:56

Отображение значимых цифр в C#

Число значащих цифр в числе - это число цифр, которые содержат значимую информацию. К ним относятся все отображаемые цифры, кроме начальных и конечных нуле...

20 06 2021 13:24:45

Set (набор) в Python

Python Set похож на словарь, неупорядоченный набор ключей, который хранится без каких-либо значений. Тип набор изменяемый , содержание может быть изменено...

19 06 2021 3:43:52

TreeMap в Java

Класс TreeMap реализует интерфейс карты, аналогичный классу HashMap. Он сохраняет свои записи в порядке возрастания, отсортированные в соответствии с естес...

18 06 2021 13:34:11

Объясните методы split () модуля «re» в Python

Модуль «re» в Python обеспечивает операции согласования регулярных выражений, аналогичные тем, которые были найдены в Perl. Оба шаблона и строки для поиска...

17 06 2021 8:39:36

Список каталогов и файлов Dropbox в C#

Dropbox - это служба обмена файлами. Бесплатная базовая версия позволяет легко разделить до 2 Г Б файлов через Интернет. Версия Pro $ 9,99 в месяц дает вам...

16 06 2021 15:14:38

Калькулятор на C#

...

15 06 2021 16:22:33

Перемещение формы без заголовка в C#

Когда пользователь нажимает мышь на зеленую метку lblMoveForm Label в верхнем правом углу формы, выполняется следующий обработчик событий. Код устанавливае...

14 06 2021 5:12:12

Что такое JVM и является ли она независимой от платформы?

Java Virtual Machine (JVM) - это спецификация, предоставляющая среду выполнения, в которой может быть запущен Java-байт-код (файлы .class). JVM - платформа...

13 06 2021 13:52:52

Нарисуйте линии с торцевыми крышками в C#

Свойства Pen класса StartCap и EndCap определяют, как линия рисует свои концевые колпачки. В этом примере используется следующий код для создания образцов...

12 06 2021 15:47:37

Определение и использование бит-маски в C#

Пример Понимание бит-масок в C# объясняет, как использовать бит маски. Чтобы определить битовую маску, просто создайте enum и присвойте ему атрибут Flags,...

11 06 2021 2:12:45

Отображение анимированных GIF-файлов и их изменение во время выполнения в C#

Вы можете отображать анимированные GIF-файлы, установив свойство Изображение кнопки , PictureBox, Label или другой элемент управления в файл GIF. ( Если вы...

10 06 2021 5:50:12

Заменить текст, соответствующий шаблону в C#

В этом примере используется следующий код для замены текста, соответствующего шаблону в строке. Этот код создает объект Regex, передавая его конструктору ш...

09 06 2021 20:12:15

Что такое классы-оболочки в Java

Как сказано в названии, класс-оболочка обертывает (охватывает) вокруг типа данных и дает ему вид объекта. Они используются для преобразования любого примит...

08 06 2021 16:20:13

Позвольте пользователю выбрать принтер, а затем отправить распечатку непосредственно на него в C#

... Когда пользователь выбирает принтер и нажимает кнопку « Печать», следующий код отправляет распечатку на выбранный принтер. Источник: http://csharphelper...

07 06 2021 11:11:49

Метод Split() в Java

Есть ситуация, когда строки содержат несколько фрагментов информации, тогда нам нужно разбить строку, чтобы извлечь отдельные фрагменты. Строки в Java можн...

06 06 2021 11:59:17

Случайные числа в Python

Случайный модуль реализует генераторы псевдослучайных чисел для различных распределений. Функции, предоставляемые этим модулем, являются фактически связанн...

05 06 2021 3:11:23

Используйте оператор is в C#

Оператор is позволяет определить, можно ли преобразовать объект в определенный тип. Например, предположим, что класс Student наследуется от Person и что st...

04 06 2021 14:59:54

Современные языки программирования: список 2018

Список современных языков программирования на 2018 год. Чтобы определиться с конкретным языком программирования для изучения (одним или несколькими) нужно для начала ответить себе на вопрос:...

03 06 2021 13:59:25

Преобразование строки в соответствующий регистр в C#

В надлежащем случае (или титульный регистр) первая буква каждого слова капитализируется. Это довольно легко, когда вы знаете, где найти метод, который прео...

02 06 2021 9:49:48

Самый простой и легкий язык программирования

Какой самый простой и легкий язык программирования? Программирование в наше время стало одним из самых перспективных занятий для молодых людей....

01 06 2021 4:22:44

Функции в JavaScript

Функции - это «автономные» модули кода, которые выполняют определенную задачу. Он содержит инструкции, используемые для создания вывода с его ввода. Чтобы...

31 05 2021 4:46:42

Получить информацию о ярлыке Windows в C#

Метод GetShortcutInfo, показанный в следующем коде, получает информацию о ярлыке. Программа сначала создает объект Shell32.Shell для работы с оболочкой Win...

30 05 2021 20:11:15

Операции Java ArrayList

Программирование Java для начинающих... ArrayList - одна из самых гибких структур данных из коллекций Java. Arraylist - это класс, который реализует интерф...

29 05 2021 8:15:37

Сделайте значки приложений приложений Windows Forms на соответствующих размерах в C#

Установка значка формы проста. Просто выберите форму в редакторе форм и установите ее свойство Icon. Windows использует этот значок разными способами. Напр...

28 05 2021 14:47:26

Что такое NullPointerException в Java

NullPointerException - исключение RuntimeException. Исключения в Runtime являются критическими и не могут быть пойманы во время компиляции. Они приводят к...

27 05 2021 6:58:14

Что такое классы-оболочки в Java

Как сказано в названии, класс-оболочка обертывает (охватывает) вокруг типа данных и дает ему вид объекта. Они используются для преобразования любого примит...

26 05 2021 15:11:51

Нарисуйте цветное колесо в C#

В программе используется PathGradientBrush, чтобы заполнить цветовое колесо цветовыми образцами. Рисование колеса в основном автоматическое, но прикладывае...

25 05 2021 5:48:18

Treeset в Java

Класс TreeSet реализует интерфейс Set, поддерживаемый TreeMap. Он создает коллекцию, которая использует дерево для хранения. Объекты хранятся в отсортирова...

24 05 2021 5:48:39

Как сделать кнопки панели инструментов похожими на переключатели в C#

Иногда бывает полезно сделать кнопки панели инструментов, как радиокнопки, чтобы пользователь мог выбрать только один из набора кнопок.  В этом примере вы м...

23 05 2021 0:33:57

Класс FileReader в Java

FileReader - это характерно-ориентированный класс, который используется для обработки файлов в Java. Он предназначен для чтения потоков символов. Один симв...

22 05 2021 18:53:16

Установить положение видео с помощью полосы прокрутки с помощью WPF в C#

Пример Управление видео с помощью WPF MediaElement в C# позволяет вам установить положение видео несколькими способами. Вы можете использовать кнопки Next...

21 05 2021 17:50:10

Сделайте карту крупным планом в C#

В этом примере карта крупным планом отображает увеличенную область под мышью, когда вы перемещаете ее по карте. Программа хранит увеличенную версию карты в...

20 05 2021 16:35:36

Как сделать сохранения в Unity 5 при помощи Newtonsoft.Json

В этом уроке мы разберем как сделать сохранения в Unity 5 при помощи библиотеки Newtonsoft.Json и разберем некоторые её свойства....

19 05 2021 21:27:50

Преобразования десятичного числа в двоичное в C#

В этой статье мы напишем программу на C# для преобразования десятичного числа в двоичное. Вывод:  ...

18 05 2021 5:14:43

Как рассчитать разницу дат в Java

Есть много способов найти разницу между датами. Ниже приведен самый простой способ найти разницу между двумя датами. Вы можете просто взять число миллисеку...

17 05 2021 15:29:40

Как получить IP-адрес в Python

Модуль сокетов в Python обеспечивает доступ к интерфейсу сокетов BSD. Имя socket.gethostbyname (имя хоста) переводит имя хоста в формат адреса IPv4. Адрес...

16 05 2021 7:40:58

Печать сетки значений с чередующимися цветами строк в C#

Следующий код показывает, как программа печатает свою сетку. Полный код не слишком сложный, но он длинный, поэтому здесь он разбит на несколько методов. Эт...

15 05 2021 19:51:55

Анимация изображений в C#

В этом примере показано, как анимировать изображения, загружая их во время выполнения, а затем воспроизводя их по одному. Чтобы упростить поиск изображений...

14 05 2021 15:39:29

Многопоточное программирование в Python

Что такое Threading? Поток исполнения является наименьшим последовательность запрограммированных инструкций , которые могут управляться независимо друг от...

13 05 2021 1:45:26

Сравните изображения, чтобы найти различия в C#

В этом примере вы можете сравнивать изображения, чтобы убедиться, что они одинаковые. Когда вы выбираете два изображения для сравнения и нажмите кнопку Go,...

12 05 2021 12:59:22

Использовать глобальные привязки команд в WPF и C#

Пример Использование пользовательских привязок команд в WPF и C# объясняет, как вы можете использовать программу для пользовательских команд. ( Это запутанн...

11 05 2021 0:43:50

Чтение и запись CSV-файлов в Python

Что такое CSV-файл? CSV - это файл значений разделенных запятыми, который позволяет сохранять данные в структурированном формате таблицы. Все CSV-файлы пре...

10 05 2021 15:14:12

PHP. Объекты, шаблоны и методики программирования, 4-е издание (Мэт Зандстра)

Четвертое издание книги было пересмотрено и дополнено новым материалом. Книга начинается с обзора объектно-ориентированных возможностей PHP, в который вклю...

09 05 2021 9:56:24

Сортировка слов по количеству букв в C#

В этом примере сортируются слова по количеству букв. Он подсчитывает количество отдельных букв в списке слов и отображает слова и их подсчеты, отсортирован...

08 05 2021 0:13:51

Использование растрового изображения для значка в C#

Вы не можете установить свойство Icon формы, равное растровому изображению. К счастью, достаточно легко создать значок из растрового изображения. В этом пр...

07 05 2021 18:40:51

Что такое ссылки на методы в Java?

Ссылки на методы являются признаком Java 8. Самое большое дополнение в Java8 - это лямбда-выражения. Ссылка на метод - это сокращенный синтаксис выражения...

06 05 2021 14:32:50

Преобразовать строку в Integer в C#

В этой статье мы напишем программу C# для преобразования строки в Integer с использованием метода Convert.ToInt32() Вывод: 6245...

05 05 2021 13:12:56

События флеш-кликов в C#

Если кнопка запускает длинную задачу, вы, вероятно, не хотите, чтобы пользователь мог снова нажать кнопку (или, возможно, ничего в приложении), пока задача...

04 05 2021 16:44:53

Сделайте строковые расширения для URL-кодирования и декодирования строк в C#

Следующий код создает методы расширения для строкового класса, который позволяет преобразовывать пробелы в строку «& amp; nbsp;» и этот URL кодировать и де...

03 05 2021 14:40:29

Еще:
Программирование -1 :: Программирование -2 :: Программирование -3 :: Программирование -4 :: Программирование -5 ::

И сказал Великий Программист:
«После трёх дней без программирования жизнь теряет смысл»