>'щелчка на кнопке Button1
>'----------------------------------------------
>Private Sub Button1_Click(ByVal sender As System.Object, _
> ByVal e As System.EventArgs) Handles Button1.Click
> '----------------------------------------------
> 'Для простоты мы допускаем существование только
> 'одного экземпляра элемента управления,
> '----------------------------------------------
> If Not (m_newControl Is Nothing) Then Return
> 'Создать экземпляр нашей кнопки
> m_newControl = New myButton
> 'Указать ему его местоположение внутри родительского объекта
> m_newControl.Bounds = New Rectangle(10, 10, 150, 40)
> '-------------------------------
> 'Присоединить обработчик событий
> '-------------------------------
> AddHandler m_newControl.EventButtonTurningBlue, _
> AddressOf CallWhenButtonTurningBlue
> 'Добавить его в список элементов управления данной формы.
> 'Это сделает его видимым
> Me.Controls.Add(m_newControl)
>End Sub
Листинг 11.11. Три полезных способа кэширования графических ресурсов
>Imports System
>Imports System.Drawing
>Friend Class GraphicsGlobals
>'=======================================================================
>'Подход 1: Создать ресурс по требованию
>' и кэшировать его для последующего использования.
>'
>'Внешний код получает доступ к общедоступным свойствам для их просмотра,
>'но сами переменные остаются внутренними переменными класса
>'=======================================================================
>Private Shared s_bluePen As Pen
>Public Shared ReadOnly Property globalBluePen() As Pen
> Get
> 'Если перо еще не было создано
> If (s_bluePen Is Nothing) Then
> s_bluePen = New System.Drawing.Pen( _
> System.Drawing.Color.Blue)
> End If
> Return s_bluePen
> End Get
>End Property
>'========================================================
>'Подход 2:
>'Загрузить глобально и кэшировать все
>'используемые объекты Pen, ImageAttribute, Font и Brush
>'
>'Внешний код получает доступ ко всем общедоступным членам,
>'так что никакие функции доступа не нужны.
>'=========================================================
>Public Shared g_blackPen As Pen
>Public Shared g_whitePen As Pen
>Public Shared g_ImageAttribute As Imaging.ImageAttributes
>Private Shared s_alreadyInitialized As Boolean
>Public Shared g_boldFont As Font
>Public Shared g_smallTextFont As Font
>Public Shared g_greenBrush As Brush
>Public Shared g_yellowBrush As Brush
>Public Shared g_redBrush As Brush
>Public Shared g_blackBrush As Brush
>'==============================================================
>'Эта функция должна быть вызвана до попыток доступа к любому из
>'вышеперечисленных глобальных объектов