Вход/Регистрация
Программирование мобильных устройств на платформе .NET Compact Framework
вернуться

Салмре Иво

Шрифт:

'------------------------------------------------------

'Выбрать цвет новой кисти, исходя из цвета старой кисти

'------------------------------------------------------

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

'--------------------------------------------------------------

'Этот код будет подключен в качестве нашего обработчика событий

  • Читать дальше
  • 1
  • ...
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: