|
|
|
| Пишу программу для вывода потомков выбранного из TreeView узла в ListView:
Dim anyNode As Node
Dim kidNode As Node
Dim inCounter As Integer
' lv - это ListView, tvM - это TreeView
Set anyNode = tvM.SelectedItem
If anyNode.Children <> 0 Then
Set kidNode = anyNode.Child
inCounter = kidNode.FirstSibling.Index
While inCounter <> kidNode.LastSibling.Index
Set itmX = lv.ListItems.Add(, , tvM.Nodes(inCounter).Text)
inCounter = tvM.Nodes(inCounter).Next.Index
Wend
End If
Проблема в том, что выводятся все потомки кроме одного последнего
Где здесь может быть ошибка? | |
|
| |
|
|
|
| >Проблема в том, что выводятся все потомки кроме одного последнего
но вы же сами написали
While inCounter <> kidNode.LastSibling.Index
вот последний и не выводится .
Вариантов много, например
Do
Set itmX = lv.ListItems.Add(, , tvM.Nodes(inCounter).Text)
if inCounter = kidNode.LastSibling.Index then exit Do
inCounter = tvM.Nodes(inCounter).Next.Index
Loop
|
| |
|
| |
|
|
|
| Здорово, a почему не получается вот так:
While inCounter <= kidNode.LastSibling.Index
Set itmX = lv.ListItems.Add(, , tvM.Nodes(inCounter).Text)
inCounter = tvM.Nodes(inCounter).Next.Index - Ошибка! Object variable not set
Wend | |
|
| |
|
|
|
| Мне не очень понятно как можно объяснять очевидное.
Если вы от LastSibling пытаетесь получить Next, то что вы ожидаете? | |
|
| |