>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