Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
'Для повышения корректности тестирования предварительно выполнить
'операцию сборки мусора. В РЕАЛЬНЫХ КОДАХ ЭТОГО ДЕЛАТЬ НЕ СЛЕДУЕТ!
System.GC.Collect
'Запустить таймер
PerformanceSampling.StartSample(3, "Clear - Use BeginUpdate")
TreeView1.BeginUpdate
TreeView1.Nodes.Clear
TreeView1.EndUpdate
'Остановить таймер и отобразить результат
PerformanceSampling.StopSample(3)
MsgBox(PerformanceSampling.GetSampleDurationText(3))
End Sub
'-------------------------------------
'Код для кнопки "Fill: Use Array"
'Подход, в котором используется массив
'-------------------------------------
Private Sub FillArrayBeforeAttachingToTree_Click(ByVal _
sender As System.Object, ByVal e As System.EventArgs) _
Handles FillArrayBeforeAttachingToTree.Click
'Очистить массив для создания одинаковых условий тестирования
If (TreeView1.Nodes.Count > 0) Then
TreeView1.BeginUpdate
TreeView1.Nodes.Clear
TreeView1.EndUpdate
TreeView1.Update
End If
'Для повышения корректности тестирования предварительно выполнить
'операцию сборки мусора. В РЕАЛЬНЫХ КОДАХ ЭТОГО ДЕЛАТЬ НЕ СЛЕДУЕТ!
System.GC.Collect
'Запустить таймер
PerformanceSampling.StartSample(4, "Populate - Use Array")
'Распределить память для нашего массива узлов дерева
Dim newTreeNodes As System.Windows.Forms.TreeNode
ReDim newTreeNodes(NUMBER_ITEMS - 1)
'Заполнить массив
Dim i As Integer
For i = 0 To NUMBER_ITEMS - 1
newTreeNodes(i) = _
New System.Windows.Forms.TreeNode("TreeItem" + _
i.ToString)
Next
'Связать массив с элементом управления TreeView
TreeView1.BeginUpdate
TreeView1.Nodes.AddRange(newTreeNodes)
TreeView1.EndUpdate
'Остановить таймер и отобразить результат
PerformanceSampling.StopSample(4)
MsgBox(PerformanceSampling.GetSampleDurationText(4))
End Sub
Листинг 11.2. Динамическое заполнение данными элемента управления TreeView
'Фиктивный текст для размещения в заполнителях дочерних узлов
Const dummy_node As String = "_dummynode"
'Метка, которую мы будем использовать для обозначения узла
Const node_needToBePopulated As String = "_populateMe"
'Текст, который мы будем использовать для наших узлов высшего уровня
Const nodeText_Neighborhoods As String = "Neighborhoods"
Const nodeText_Prices As String = "Prices"
Const nodeText_HouseType As String = "HouseTypes"
'--------------------------------------------------------------------
'Обработчик события щелчка для кнопки
'Настраивает наш элемент управления TreeView для отображения процесса
'последовательного заполнения дерева
'--------------------------------------------------------------------
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim tnNewNode As TreeNode
'Отключить обновление ПИ до тех пор, пока дерево не будет заполнено
TreeView1.BeginUpdate
'Избавиться от устаревших данных
TreeView1.Nodes.Clear
'--------------------
'Узел "Neighborhoods"
'--------------------
'Добавить узел "Neighborhoods" верхнего уровня.
tnNewNode = TreeView1.Nodes.Add("Neighborhoods")
'Установить для узла метку, указывающую на то, что узел
'будет заполняться динамически
tnNewNode.Tag = node_needToBePopulated
'Этот фиктивный дочерний узел существует лишь для того, чтобы
'узел имел, по крайней мере, один дочерний узел и поэтому
'был расширяемым.
tnNewNode.Nodes.Add(dummy_node)
'------------
'Узел "Price"
'------------
tnNewNode = TreeView1.Nodes.Add("Price")
'Установить для узла метку, указывающую на то, что узел
Поделиться:
Популярные книги
Мастер порталов
8. Гибрид
Фантастика:
боевая фантастика
попаданцы
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Анти-Ксенонская Инициатива
7. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Ну, здравствуй, Герой!
2. Здравствуй, Мир!
Фантастика:
фэнтези
рпг
попаданцы
5.00
рейтинг книги
Иной. Том 5. Адская работа
5. Иной в голове
Фантастика:
боевая фантастика
городское фэнтези
технофэнтези
рпг
5.00
рейтинг книги
Прапорщик. Назад в СССР. Книга 7
7. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Третий. Том 6
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
фантастика: прочее
попаданцы
5.00
рейтинг книги
Идеальный мир для Лекаря
1. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Дважды одаренный. Том V
5. Дважды одаренный
Фантастика:
аниме
альтернативная история
городское фэнтези
5.00
рейтинг книги
Азеф
Проза:
историческая проза
6.00
рейтинг книги
Газлайтер. Том 39
39. История Телепата
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
попаданцы
5.00
рейтинг книги
Волкодав
1. Волкодав
Фантастика:
фэнтези
героическая фантастика
9.46
рейтинг книги
Эволюционер из трущоб. Том 5
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Отверженный. Дилогия
Отверженный
Фантастика:
фэнтези
7.51
рейтинг книги
Чехов
1. Адвокат Чехов
Фантастика:
фэнтези
боевая фантастика
альтернативная история
5.00