>'Создает объект Graphics для формы и осуществляет рисование
>'----------------------------------------------------------
>Private Sub Button1_Click(ByVal sender As System.Object, _
> ByVal e As System.EventArgs) Handles Button1.Click
> 'Создать объект Graphics для формы
> Dim myGfx As System.Drawing.Graphics
> myGfx = Me.CreateGraphics()
> 'Создать кисть
> Dim myBrush As System.Drawing.Brush
> myBrush = New System.Drawing.SolidBrush( _
> System.Drawing.Color.DarkGreen)
> 'Заполнить прямоугольник
> myGfx.FillRectangle(myBrush, 4, 2, 60, 20)
> '-------------------------
> 'Важно: Выполнить очистку!
> '-------------------------
> myBrush.Dispose()
> myGfx.Dispose()
>End Sub
Листинг 11.8. Подключение к функции Paint формы
>'Кисти, которые мы хотим кэшировать, чтобы избавить себя от необходимости
>'все время создавать их и уничтожать
>Private m_brushBlue As System.Drawing.Brush
>Private m_brushYellow As System.Drawing.Brush
>'Ради интереса подсчитаем, сколько раз осуществлялся вызов
>Private m_paintCount As Integer
>'-----------------------------------------------------------------------------
>'Мы перекрываем обработчики событий Paint наших базовых классов. Это означает,
>'что каждый раз, когда форма вызывается для перерисовки самой себя, будет
>'вызываться эта функция.
>'-----------------------------------------------------------------------------
>Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
> 'ВАЖНО: Вызвать базовый класс и дать ему возможность
> 'выполнить всю необходимую работу по рисованию
> MyBase.OnPaint(e)
> 'Увеличить на 1 значение счетчика вызовов
> m_paintCount = m_paintCount + 1
> '--------------------------------------------------------------------------
> 'Важно:
> 'Вместо того чтобы создавать объект Graphics, мы получаем его
> 'на время данного вызова. Это означает, что освобождать память путем вызова
> 'метода .Dispose() объекта - не наша забота
> '--------------------------------------------------------------------------
> Dim myGfx As System.Drawing.Graphics
> myGfx = e.Graphics
> '-------------------------------------------------------------------
> 'Поскольку эту операцию рисования необходимо выполнить быстро,
> 'кэшируем кисти, чтобы избавить себя от необходимости создавать их и
> 'уничтожать при каждом вызове
> '-------------------------------------------------------------------
> If (m_brushBlue Is Nothing) Then
> m_brushBlue = New System.Drawing.SolidBrush( _
> System.Drawing.Color.Blue)
> End If
> If (m_brushYellow Is Nothing) Then
> m_brushYellow = New System.Drawing.SolidBrush( _
> System.Drawing.Color.Yellow)
> End If
> '-------------------