Категории
Самые читаемые
onlinekniga.com » Компьютеры и Интернет » Программирование » Программирование мобильных устройств на платформе .NET Compact Framework - Иво Салмре

Программирование мобильных устройств на платформе .NET Compact Framework - Иво Салмре

Читать онлайн Программирование мобильных устройств на платформе .NET Compact Framework - Иво Салмре

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 189 190 191 192 193 194 195 196 197 ... 206
Перейти на страницу:

#End If

End Sub

Private Sub buttonShowEventLog_Click(ByVal sender As _

 System.Object, ByVal e As System.EventArgs) _

 Handles buttonShowEventLog.Click

#If EVENTINSTRUMENTATION <> 0 Then

 instrumentation_ShowEventLog()

#End If

End Sub

Листинг 11.5. Вызов метода Update() элемента управления для отображения пояснительного текста, информирующего о ходе выполнения задачи

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

'Этот код принадлежит форме, содержащей по одному элементу управления

'Button (button1) и Label (label1)

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

Private Sub Button1_Click(ByVal sender As System.Object, _

 ByVal e As System.EventArgs) Handles Button1.Click

 'Отобразить курсор ожидания

 System.Windows.Forms.Cursor.Current = _

  System.Windows.Forms.Cursors.WaitCursor

 Dim testString As String

 Dim loop3 As Integer

 For loop3 = 1 To 100 Step 10

  Label1.Text = loop3.ToString() + "% Done..."

  '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  'Чтобы отобразить информацию о процессе обновления,!

  'удалите символы комментария в строке ниже         !

  '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  'Label1.Update()

  testString = ""

  Dim loop2 As Integer

  For loop2 = 1 To 1000

   testString = testString + "тест"

  Next

 Next

 Label1.Text = "Готово!"

 'Удалить курсор ожидания

 System.Windows.Forms.Cursor.Current = _

  System.Windows Forms.Cursors.Default

End Sub

Листинг 11.6. Создание изображения на внеэкранной растровой поверхности и передача его в элемент управления PictureBox

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

'Создать рисунок на растровой поверхности. Переслать его в PictureBox

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

Private Sub Button1_Click(ByVal sender As System.Object, _

 ByVal e As System.EventArgs) Handles Button1.Click

 'Создать новую битовую карту

 Dim myBitmap As System.Drawing.Bitmap

 myBitmap = New System.Drawing.Bitmap(PictureBox1.Width, _

  PictureBox1.Height)

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

 'Создать объект Graphics, чтобы иметь возможность рисовать на битовой карте

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

 Dim myGfx As System.Drawing.Graphics

 myGfx = System.Drawing.Graphics.FromImage(myBitmap)

 'Закрасить нашу битовую карту желтым цветом

 myGfx.Clear(System.Drawing.Color.Yellow)

 'Создать перо

 Dim myPen As System.Drawing.Pen

 rayPen = New System.Drawing.Pen(System.Drawing.Color.Blue)

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

 'Нарисовать эллипс

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

 myGfx.DrawEllipse(myPen, 0, 0, myBitmap.Width - 1, _

  myBitmap.Height - 1)

 'Создать сплошную кисть

 Dim myBrush As System.Drawing.Brush

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

 'Нарисовать текст кистью

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

 myBrush = New System.Drawing.SolidBrush( _

  System.Drawing.Color.Black)

 'Примечание: мы используем объект Font из формы

 myGfx.DrawString("Привет!", Me.Font, myBrush, 2, 10)

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

 'Важно! Очистить все после себя

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

 myGfx.Dispose()

 myPen.Dispose()

 myBrush.Dispose()

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

 'Указать объекту pictureBox, на необходимость отображения растрового

 'изображения, которое мы только что создали и нарисовали.

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

 PictureBox1.Image = myBitmap

End Sub

Листинг 11.7. Создание объекта Graphics для формы

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

'Создает объект 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

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

 'Выполнить рисование

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

 myGfx.FillRectangle(m_brushBlue, 2, 2, 100, 100)

 myGfx.DrawString("PaintCount: " + CStr(m_paintCount), _

  Me.Font, m_brushYellow, 3, 3)

 'Выход: Объекты, для которых мы должны были бы вызывать метод

 '.Dispose(), отсутствуют.

End Sub

Листинг 11.9. Простой пользовательский элемент управления, который изменяет цвета и запускает событие, определяемое пользователем

'Простейший пользовательский элемент управления

Public Class myButton

Inherits System.Windows.Forms.Control

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

'Объекты, необходимые нам для рисования

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

Private m_RectangleBrush As System.Drawing.Brush

Private m_TextBrush As System.Drawing.Brush

Private m_RectangleColor As System.Drawing.Color

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

'Событие, которое мы хотим предоставить на обработку. Это - общедоступный

'делегат.

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

Public Event EventButtonTurningBlue(ByVal sender As Object, _

 ByVal e As System.EventArgs)

 'Конструктор

 Public Sub New()

  MyBase.New()

  'ПРИМЕЧАНИЕ: Мы должны написать функцию "Dispose()" и

  'деструктор, который освобождает память от этих объектов

  'Создать необходимые кисти

  m_RectangleColor = System.Drawing.Color.Black

  m_RectangleBrush = New System.Drawing.SolidBrush( _

   m_RectangleColor)

  m_TextBrush = New System.Drawing.SolidBrush( _

   System.Drawing.Color.White)

End Sub

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

'Внутренним откликом на щелчок является

'повторение трех различных цветов кнопки в цикле

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

Protected Overrides Sub OnClick(ByVal e As System.EventArgs)

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

 'Важно: Вызвать базовую реализацию. Это

 'обеспечит возможность вызова любого обработчика событий,

 'подключенного к данному элементу управления

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

 MyBase.OnClick (e)

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

1 ... 189 190 191 192 193 194 195 196 197 ... 206
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Программирование мобильных устройств на платформе .NET Compact Framework - Иво Салмре.
Комментарии