ПОНЯТНО О Visual Basic NET (том 3)




Проект – Графический редактор - часть 2


End Sub

Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)  _

Handles NumericUpDown1.ValueChanged

        Толщина = NumericUpDown1.Value

End Sub

Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)  _

Handles MyBase.MouseMove

        If e.Button = MouseButtons.Left Then

            Гр.FillEllipse(Кисть, e.X, e.Y, Толщина, Толщина)

            Граф.FillEllipse(Кисть, e.X, e.Y, Толщина, Толщина)

        End If

End Sub

Пояснения: Для понимания программы нужно вспомнить, как мы работали с картинками и рисовали на элементах управления и в памяти (6.2, 12.3 и 12.4).

Я решил рисовать именно в памяти, в объекте Лист класса Bitmap, потому что в память удобней загружать картинки и удобней из памяти сохранять нарисованное. А чтобы было видно, что мы рисуем, я продублировал рисование на форме. Пробовали вы рисовать двумя руками на двух листах бумаги одно и то же? Это примерно то же самое.

Первая строка программы объявляет Лист, а в процедуре Form1_Load он создается, причем по размерам равный форме. Поскольку рисовать я вознамерился «в двух местах», а для рисования нужны объекты класса Graphics, я их объявляю во второй строке программы и создаю в процедуре Form1_Load.

Процедура Form1_MouseMove осуществляет все рисование. Идея рисования мышкой изложена в 14.2.3, а в решении к Задание 111 сказано, как рисовать только при нажатой левой клавише мыши. Рисование линий осуществляется рисованием близко расположенных кружочков.

Поскольку для рисования методом FillEllipse нужны Кисть и Толщина, то я их объявляю 3-4 строками программы, а в процедуре Выбрать_цвет меняю цвет кисти и в процедуре NumericUpDown1_ValueChanged меняю толщину «карандаша».

Процедура Сохранить сохраняет содержимое объекта Лист в файл, выбранный нами в диалоговом окне.

Процедура Открыть загружает графический файл, выбранный нами в диалоговом окне, в «транзитный» объект Картинка, созданный нами только для этой цели. Оттуда содержимое файла рисуется на Листе и на форме.




Содержание  Назад  Вперед