Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
Private m_eventTriggerCount As Integer
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Buttonl.Click
'Запускает событие TextChanged так же,
'как если бы текст был введен пользователем
TextBox1.Text = "Привет, мир"
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles TextBox1.TextChanged
m_eventTriggerCount = m_eventTriggerCount + 1
'Обновить
надпись для отображения количества событий
Label1.Text = "Событий: #" + CStr(m_eventTriggerCount)
'Внести каждое событие в список
ListBox1.Items.Add(m_eventTriggerCount.ToString + TextBox1.Text)
End Sub
Листинг 11.4. Использование модели состояний для обновления интерфейса и контроль запуска событий с целью более глубокого изучения процесса обработки событий и управления им
'-----------------------------------------
'Для активизации контроля запуска событий:
' #Const EVENTINSTRUMENTATION = 1
'Для отмены контроля запуска событий:
' #Const EVENTINSTRUMENTATION = 0
'-----------------------------------------
#Const EVENTINSTRUMENTATION = 1
'-----------------------------------------------------------------------
'Флаг, указывающий обработчикам событий, должен ли из них осуществляться
'выход без выполнения каких-либо действий
'-----------------------------------------------------------------------
Private m_userInterfaceUpdateOccuring As Boolean
'Счетчики событий
Private m_radioButton1ChangeEventCount As Integer
Private m_textBox1ChangeEventCount As Integer
'-------------------------------------------------------------------------
'Код, который следует включать лишь в том случае, если приложение
'выполняется в режиме контроля запуска событий. Этот код характеризуется
'относительно высокими накладными расходами, и его следует компилировать и
'выполнять только тогда, когда выполняется диагностика.
'-------------------------------------------------------------------------
#If EVENTINSTRUMENTATION <> 0 Then
Private m_instrumentedEventLog As System.Collections.ArrayList
'----------------------------------------------------------------------
'Заносит
записи о возникновении событий в массив, который мы
'можем просмотреть
'Примечание: Не делается никаких попыток ограничить размерность массива
' регистрационных записей, поэтому, чем дольше выполняется приложение,
' тем больше становится размер массива
'----------------------------------------------------------------------
Private Sub instrumented_logEventOccurrence(ByVal eventData _
As String)
'Создать журнал событий, если он еще не был создан
If (m_instrumentedEventLog Is Nothing) Then
m_instrumentedEventLog = _
New System.Collections.ArrayList
End If
'Зарегистрировать событие
m_instrumentedEventLog.Add(eventData)
End Sub
'----------------------------------------------------------
'Отобразить список возникших событий
'Примечание: Этот вариант реализации довольно груб.
' Целесообразнее отображать список событий
' в отдельном диалоговом окне, которое специально выводится
' для этого на экран.
'----------------------------------------------------------
Private Sub instrumentation_ShowEventLog Dim listItems As _
System.Windows.Forms.ListBox.ObjectCollection
listItems = listBoxEventLog.Items
'Очистить список элементов
listItems.Clear
'При отсутствии событий - выход
If (m instrumentedEventLog Is Nothing) Then
listItems.Add("0 событий")
Return
End If
'Отобразить поверх списка общее количество
'подсчитанных нами событий
listItems.Add(m_instrumentedEventLog.Count.ToString + _
" событий")
'Перечислить элементы списка в обратном порядке, чтобы
'первыми отображались самые последние из них
Dim logItem As String
Поделиться:
Популярные книги
Моров. Том 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