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

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

Жанры

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

Amazerak
5. Иной в голове
Фантастика:
боевая фантастика
городское фэнтези
технофэнтези
рпг
5.00
рейтинг книги
Иной. Том 5. Адская работа

Прапорщик. Назад в СССР. Книга 7

Гаусс Максим
7. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прапорщик. Назад в СССР. Книга 7

Третий. Том 6

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
фантастика: прочее
попаданцы
5.00
рейтинг книги
Третий. Том 6

Идеальный мир для Лекаря

Сапфир Олег
1. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря

Дважды одаренный. Том V

Тарс Элиан
5. Дважды одаренный
Фантастика:
аниме
альтернативная история
городское фэнтези
5.00
рейтинг книги
Дважды одаренный. Том V

Азеф

Гуль Роман Борисович
Проза:
историческая проза
6.00
рейтинг книги
Азеф

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

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

Волкодав

Семёнова Мария Васильевна
1. Волкодав
Фантастика:
фэнтези
героическая фантастика
9.46
рейтинг книги
Волкодав

Эволюционер из трущоб. Том 5

Панарин Антон
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 5

Отверженный. Дилогия

Опсокополос Алексис
Отверженный
Фантастика:
фэнтези
7.51
рейтинг книги
Отверженный. Дилогия

Чехов

Гоблин (MeXXanik)
1. Адвокат Чехов
Фантастика:
фэнтези
боевая фантастика
альтернативная история
5.00
рейтинг книги
Чехов