Чтение онлайн

на главную - закладки

Жанры

Программирование мобильных устройств на платформе .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
рейтинг книги
Моров. Том 4

Офицер

Земляной Андрей Борисович
1. Офицер
Фантастика:
боевая фантастика
7.21
рейтинг книги
Офицер

Брак по-драконьи

Ардова Алиса
Фантастика:
фэнтези
8.60
рейтинг книги
Брак по-драконьи

Родословная. Том 3

Ткачев Андрей Юрьевич
3. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Родословная. Том 3

Протокол "Наследник"

Лисина Александра
1. Гибрид
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Протокол Наследник

Библия

Библия
Религия и эзотерика:
религия
7.41
рейтинг книги
Библия

Товарищ "Чума" 6

lanpirot
6. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 6

Бастард

Осадчук Алексей Витальевич
1. Последняя жизнь
Фантастика:
фэнтези
героическая фантастика
попаданцы
5.86
рейтинг книги
Бастард

Кодекс Охотника. Книга XXXVI

Винокуров Юрий
36. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXVI

Газлайтер. Том 6

Володин Григорий
6. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 6

История московских кладбищ. Под кровом вечной тишины

Рябинин Юрий Валерьевич
Научно-образовательная:
история
культурология
5.75
рейтинг книги
История московских кладбищ. Под кровом вечной тишины

Родословная. Том 4

Ткачев Андрей Юрьевич
4. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Родословная. Том 4

Родословная. Том 2

Ткачев Андрей Юрьевич
2. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Родословная. Том 2

Выйду замуж за спасателя

Рам Янка
1. Спасатели
Любовные романы:
современные любовные романы
7.00
рейтинг книги
Выйду замуж за спасателя