Графическая «доска» на C# за 10 минут.

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

Поехали.
1) Создаем WinForms проект, обзываем его «WinFormsApp_Paint»
2) Меняем для формы значение св-ва Text = «MyPaint»
3) Кидаем на форму 3 элемента Label, 1 элемент NumericUpDown, 1 кнопку.
4) Для label1 св-во Text = «Выбрать цвет». Расположить в левом верхнем углу.
5) Под label1 располагаем label2
+ Очищаем св-во Text.
+ Выставляем св-ву autosize = false;
+ св-ву Size = 50;50

+ св-во BackColor = Black;
+ Создаем обработчик для события Click.

6) Для label3 св-во Text = «Толщина пера». Расположить под label2 на некотором отдалении.
7) Под label3 расположить numericUpDown, св-во:
+ Minimum = 1;
+ Maximum = 10;
+ Value = 2;
8) Кнопку располагаем в нижнем левом углу. св-во Text = «Очистить область»;
9) Теперь перетаскиваем на форму элемент Panel, располагает на всей свободной области формы, св-ва
+ BorderStyle = Fixed3D;
+ Создаем обработчик для события MouseDown
+ Создаем обработчик для события MouseUp
+ Создаем обработчик для события MouseMove

Сейчас форма должна выглядеть так:

10) Теперь переходим в код:
В блоке public partial class Form1 : Form, пишем:

 

11) Далее, в блоке public Form1() после InitializeComponent(), добавляем:

11) Теперь переходим к обработчику клика по label2, при нажатии будет появляться окно в котором нужно выбрать цвет.

12) По нажатию на кнопку у нас будет происходить перерисовка panel

Сейчас код выглядит так:

Самое время создать перо! Для этого создадим метод my_Pen();

Теперь опишем поведение курсора, если в момент нажатия курсор находится над panel, то на panel должны появляться точки соединенные линиями, пока левая кнопка мыши зажата — можно рисовать, когда левая кнопка мыши отжата — нанесение точек запрещено. Наверно не понятно объяснил, но как смог, всё рисование сводится к нанесению точек на область и соединение этих точек линиями…

ВСЁ! Запускаем проверяем.

Если получилось, ставь лайк.

35+

9 thoughts on “Графическая «доска» на C# за 10 минут.

  1. Здравствуйте, воспроизвёл у себя данный код в строчке с label2.BackColor = Color.Black; выдал мне ошибку lable2 не существует в текущем контексте. Удалил всю строку — заработало.

    0
  2. Перед public Form1() Я не могу найти где это находится? Скачал ваши файлы,в них тоже нету.

    0
    1. Приветствую, сейчас скачал проект и проверил, всё работает. Отправьте скрин сюда rabota683@gmail.com, подскажу что не так.

      0
  3. Спасибо, прямо глаза открыл, что у объектов типа кнопки есть прикольное свойство, создающее поверхность для рисования по ним.
    И вообще на многое глаза открыл. Спасибо от начинающего разраба.

    0
  4. Рисует отлично, но при изменении размеров окна приложения нарисованное теряется — срабатывает событие Form1_Paint. В обработчике этого события требуется восстановить ранее нарисованное, а вот это ранее нарисованное надо при рисовании сохранить. Вопрос как сохранить и как потом восстановить?

    0

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.