Рисование в графическом окне - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Всем здравствуйте. Мы нарисовали на PictureBox средствами GDI+ или API графический примитив. Свернув-развернув форму мы получим чистое окно, наше рисование исчезнет. Вставлять код в обработчик Paint не вариант, так-как это не статический блок кода. Наверняка есть способ, позволяющий дублировать наше рисование в памяти и при перерисовке формы его восстанавливать.

Решение задачи: «Рисование в графическом окне»

textual
Листинг программы
Public Class Form3
    Private rnd As Random
    Private x1, y1, x2, y2 As Integer
    Private BM As Bitmap
    Private pnLn As Pen
    Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Timer1.Interval = 500
        pnLn = New Pen(Brushes.Red, 3)
        BM = New Bitmap(PictureBox1.Width, PictureBox1.Height)
    End Sub
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        x1 = 0 : y1 = 0
        rnd = New Random
        Timer1.Enabled = True
    End Sub
    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        x2 = rnd.Next(0, PictureBox1.Width)
        y2 = rnd.Next(0, PictureBox1.Height)
        Using G As Graphics = Graphics.FromImage(BM)
            G.DrawLine(pnLn, New PointF(x1, y1), New PointF(x2, y2))
            PictureBox1.Image = BM
        End Using
        x1 = x2
        y1 = y2
    End Sub
End Class

Оцени полезность:

5   голосов , оценка 4.6 из 5