2017-04-15 3 views
0

私はグーグルで検索していますが、答えは見つからないので、ここで助けを求めます。ツリービューコントロールで名前でグループ化する方法

VBでTreeViewコントロールの名前をグループ化したいのですが、どうすればいいですか?

Visual Studio Form GUI Visual Studio Form GUI 2

Public Class FrmPengingat 

    Private Sub FrmPengingat_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     'TODO: This line of code loads data into the 'DSLap.PengingatHutang' table. You can move, or remove it, as needed. 
     Me.PengingatHutangTableAdapter.Fill(Me.DSLap.PengingatHutang) 

     'fill the tree control 
     Dim NmPemasok As String 
     Dim NoNota As String 
     Dim TglJatuhTempo As Date 
     Dim Total As Decimal 
     Dim tmpNmPemasok As String 

     Dim i As Integer 
     For i = 0 To DSLap.PengingatHutang.Count - 1 
      NmPemasok = DSLap.PengingatHutang.Rows(i).Item(0) 
      tmpNmPemasok = DSLap.PengingatHutang.Rows(i).Item(0) 
      NoNota = DSLap.PengingatHutang.Rows(i).Item(1) 
      TglJatuhTempo = DSLap.PengingatHutang.Rows(i).Item(2) 
      Total = DSLap.PengingatHutang.Rows(i).Item(3) 

      TreeView1.Nodes.Add(i, NmPemasok).Nodes.Add(i, NoNota & " (" & TglJatuhTempo & ") " & Total) 

     Next 
    End Sub 
End Class 
+0

は、これに上記を交換してください。詳細情報:https://msdn.microsoft.com/en-us/library/system.windows.forms.treenode.parent(v=vs.110).aspx –

+0

@DaveB: 'Parent'は読み取り専用です。変更することはできません。自動的に設定されます。 –

+0

@CalvinTedja:私の答えがあなたの問題を解決した場合は、私の投稿の左にあるチェック/マークを押して、 "受け入れ"とマークしてください。詳細については、以下を参照してください:[**どのように答えを受け入れるのですか?**](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) - 私の答えあなたの問題を解決していませんでした私は問題が何であるか教えてくださいと私はあなたを助けようとします! –

答えて

0

この行をありがとう:

TreeView1.Nodes.Add(i, NmPemasok).Nodes.Add(i, NoNota & " (" & TglJatuhTempo & ") " & Total) 

は、新しい親ノードを毎回追加されます。ツリービューに既に同じテキストのノードが含まれているかどうかを確認し、そうでない場合は新しいノードを追加してください。

親ノードのテキストと同じキーを作成することをお勧めします。親ノードのテキストが存在するかどうかを簡単に確認できます。あなたは、この項目間の関係を記述する `parent`を設定する必要が

If TreeView1.Nodes.ContainsKey(NmPemasok) Then 'The parent node already exists. 
    TreeView1.Nodes(NmPemasok).Nodes.Add(i, NoNota & " (" & TglJatuhTempo & ") " & Total) 
Else 'The parent node doesn't exist. 
    TreeView1.Nodes.Add(NmPemasok, NmPemasok).Nodes.Add(i, NoNota & " (" & TglJatuhTempo & ") " & Total) 
End If 
+1

ノードを1つずつ追加するのは本当に素晴らしい考えではありません。すべてのノードを最初に作成してから、それらをすべて1つのバッチに追加する方がよいでしょう。 – jmcilhinney

+0

@jmcilhinney:やや真実ですが、再描画を中断すると、それは本当に大きな違いになりますか? –

関連する問題