Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
'повторение трех различных цветов кнопки в цикле
'-----------------------------------------------
Protected Overrides Sub OnClick(ByVal e As System.EventArgs)
'--------------------------------------------------------
'Важно: Вызвать базовую реализацию. Это
'обеспечит возможность вызова любого обработчика событий,
'подключенного к данному
элементу управления
'--------------------------------------------------------
MyBase.OnClick (e)
'------------------------------------------------------
'Выбрать цвет новой кисти, исходя из цвета старой кисти
'------------------------------------------------------
If (m_RectangleColor.Equals(System.Drawing.Color.Black)) Then
m_RectangleColor = System.Drawing.Color.Blue
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'Запустить событие!
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'Возбудить событие без передачи аргумента
RaiseEvent EventButtonTurningBlue(Me, Nothing)
ElseIf (m_RectangleColor.Equals(System.Drawing.Color.Blue)) Then
m_RectangleColor = System.Drawing.Color.Red
Else
m_RectangleColor = System.Drawing.Color.Black
End If
'-----------------------
'Освободить старую кисть
'-----------------------
m_RectangleBrush.Dispose
'----------------------------------------------------------------
'Создать новую кисть, которую мы собираемся использовать для фона
'----------------------------------------------------------------
m_RectangleBrush = _
New System.Drawing.SolidBrush(m_RectangleColor)
'------------------------------------------------------------
'Сообщить операционной системе, что наш элемент управления
'должен быть перерисован, как только представится возможность
'------------------------------------------------------------
Me.Invalidate
End Sub
'----------------------------------------------------------------
'Ради интереса подсчитаем, сколько раз
осуществлялась перерисовка
'----------------------------------------------------------------
Private m_paintCount As Integer
Protected Overrides Sub OnPaint( _
ByVal e As System.Windows.Forms.PaintEventArgs)
'--------------------------------------------
'ВАЖНО: Вызвать базовый класс и позволить ему
'выполнить работу по рисованию
'--------------------------------------------
MyBase.OnPaint(e)
'Увеличить на единицу значение счетчика вызовов
m_paintCount = m_paintCount + 1
'--------------------------------------------------------------------------
'Важно:
'Вместо того чтобы создавать объект Graphics, мы получаем его
'на время данного вызова. Это означает, что освобождать память путем вызова
'метода .Dispose объекта - не наша забота
'--------------------------------------------------------------------------
Dim myGfx As System.Drawing.Graphics
myGfx = e.Graphics
'Нарисовать прямоугольник
myGfx.FillRectangle(m_RectangleBrush, 0, 0, _
Me.Width, Me.Height)
'Нарисовать текст
myGfx.DrawString("Button! Paint: " + m_paintCount.ToString, _
Me.Parent.Font, m_TextBrush, 0, 0)
End Sub
End Class
Листинг 11.10. Код, который должен быть помещен в форму для создания экземпляра пользовательского элемента управления
'Наша новая кнопка
Private m_newControl As myButton
'--------------------------------------------------------------
'Этот код будет подключен в качестве нашего обработчика событий
'--------------------------------------------------------------
Private Sub CallWhenButtonTurningBlue(ByVal sender As Object, _
ByVal e As System.EventArgs)
MsgBox("Кнопка становится синей!")
End Sub
'----------------------------------------------
Поделиться:
Популярные книги
Моров. Том 4
3. Моров
Фантастика:
фэнтези
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Офицер
1. Офицер
Фантастика:
боевая фантастика
7.21
рейтинг книги
Брак по-драконьи
Фантастика:
фэнтези
8.60
рейтинг книги
Родословная. Том 3
3. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Протокол "Наследник"
1. Гибрид
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Библия
Религия и эзотерика:
религия
7.41
рейтинг книги
Товарищ "Чума" 6
6. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Бастард
1. Последняя жизнь
Фантастика:
фэнтези
героическая фантастика
попаданцы
5.86
рейтинг книги
Кодекс Охотника. Книга XXXVI
36. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Газлайтер. Том 6
6. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
История московских кладбищ. Под кровом вечной тишины
Научно-образовательная:
история
культурология
5.75
рейтинг книги
Родословная. Том 4
4. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Родословная. Том 2
2. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Выйду замуж за спасателя
1. Спасатели
Любовные романы:
современные любовные романы
7.00