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

>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")


> 'Установить для узла метку, указывающую на то, что узел

> 'будет заполняться динамически

> tnNewNode.Tag = node_needToBePopulated


> 'Этот фиктивный дочерний узел существует лишь для того, чтобы

> 'узел имел, по крайней мере, один дочерний узел и поэтому

> 'был расширяемым

> tnNewNode.Nodes.Add(dummy_node)


> '----------------

> 'Узел "HouseType"

> '----------------

> tnNewNode = TreeView1.Nodes.Add("HouseType")

> 'Установить для узла метку, указывающую на то, что узел

> 'будет заполняться динамически

> tnNewNode.Tag = node_needToBePopulated


> 'Этот фиктивный дочерний узел существует лишь для того, чтобы

> 'узел имел, по крайней мере, один дочерний узел и поэтому

> 'был расширяемым.

> tnNewNode.Nodes.Add(dummy node)


> 'Восстанавливаем обновление ПИ

> TreeView1.EndUpdate()

>End Sub


>''-----------------------------------------------------------------------------

>''Обработчик событий BeforeExpand для нашего элемента управления TreeView