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

>''ПРИМЕЧАНИЕ: В отличие от 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)