私は自分のデータセットからツリー構造を構築しました。今私は、TreeViewで、次のコードを使用してその階層を表現しようとしています。なぜ私のツリービューはフラットですか?
まず、すべてのルートノートを作成:階層の各レベルを反復処理し、一度に子供の1つのレベルを追加し、その後
For Each nodeObject In NodeCollection
If nodeObject.rank = 0 Then
treeUCD.Nodes.Add key:=nodeObject.Name, Text:=nodeObject.Description
End If
Next nodeObject
:
For i = 1 To treeHeight
For Each nodeObject In NodeCollection
If nodeObject.rank = i Then
treeUCD.Nodes.Add nodeObject.Parent.Name, tvwChild, _
nodeObject.Name, nodeObject.Description
End If
Next nodeObject
Next I
しかし、すべてのノードが作成されますルートノードとして。子供の割り当て方法は?
EDIT: ノードにランクを割り当てる方法に問題があります。ステップ実行すると、それが適切に増加していることが明らかになったが、私の再帰関数は、0毎回返します
Function GetRank(nodeObject As clsNode, ByRef rank As Integer)
If nodeObject.Parent Is Nothing Then
GetRank = rank
Exit Function
End If
GetRank nodeObject.Parent, rank + 1
End Function
EDIT 反復機能が今働いている:
GetRank = GetRank(nodeObject.Parent, rank + 1)
をが、TreeViewコントロールはいずれも表示されません子供。
それはTreeNodeCollectionだ - そして、これは正確に 'ないhttps://msdn.microsoft.com/en-us/library/system.windows.forms.treenodecollection(v=vs.110).aspx – thecatswhiskers
vba'関連の質問ですか? – Vityata
@VityataどうやってVBAに関連しないのですか? – Tomalak