>''ПРИМЕЧАНИЕ: В отличие от C#, данный обработчик
>'' НЕ требует от вас связываться дорабатывать код
>'' "InitializeComponent()" (не делайте этого!)
>'' Вы можете просто выбрать событие обычным путем
>'' выпадающего списка событий в редакторах VB
>''
>''Вызывается при запросе пользователем расширения узла, у которого имеется,
>''по крайней мере, один дочерний узел. Этот вызов осуществляется до отображения
>''дочерних узлов данного узла и дает нам возможность динамически заполнить
>''данными элемент управления TreeView.
>''-----------------------------------------------------------------------------
>Private Sub TreeView1_BeforeExpand(ByVal sender As Object, _
> ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) _
> Handles TreeView1.BeforeExpand
> 'Получить узел, который будет расширяться
> Dim tnExpanding As System.Windows.Forms.TreeNode
> tnExpanding = e.Node
> 'Если узел не отмечен как "нуждающийся в заполнении данными",
> 'то он устраивает нас в том виде, "как он есть".
> If Not (tnExpanding.Tag Is node needToBePopulated) Then
> Return 'Разрешить беспрепятственное продолжение выполнения
> End If
> 'Требуется динамическое заполнение дерева данными.
> 'Мы знаем, что узел должен быть заполнен данными; определить,
> 'что это за узел
> If (tnExpanding.Text = nodeText_Neighborhoods) Then
> PopulateTreeViewNeighborhoods(tnExpanding)
> Return 'done adding items!
> Else
> 'Проверить другие возможности для узлов дерева, которые мы должны
> 'добавить.
> MsgBox("HE СДЕЛАНО: Добавьте код для динамического заполнения этого узла")
> 'Снять отметку с этого узла, чтобы мы не могли вновь выполнить
> 'этот код
> tnExpanding.Tag = ""
> End If
>End Sub
>'------------------------------------------------------------------
>'Эта функция вызывается для динамического добавления дочерних узлов
>'в узел "Neighborhood"
>'------------------------------------------------------------------
>Sub PopulateTreeViewNeighborhoods(ByVal tnAddTo As TreeNode)
> Dim tvControl As TreeView
> tvControl = tnAddTo.TreeView
> tvControl.BeginUpdate()
> 'Очистить имеющийся фиктивный узел
> tnAddTo.Nodes.Clear()
> 'Объявить четыре узла, которые мы хотим сделать дочерними узлами
> 'того узла, который был передан.
> Dim newNeighborhoodNodes() As TreeNode
> ReDim newNeighborhoodNodes(3)
> newNeighborhoodNodes(0) = New TreeNode("Capitol Hill")
> newNeighborhoodNodes(1) = New TreeNode("Chelsea")
> newNeighborhoodNodes(2) = New TreeNode("Downtown")
> newNeighborhoodNodes(3) = New TreeNode("South Bay")
> 'Добавить дочерние узлы в элемент управления TreeView
> tnAddTo.Nodes.AddRange(newNeighborhoodNodes)