2017-04-15 25 views
0

我一直在搜索youtube,但找不到答案,所以我想在這裏尋求幫助。如何在Treeview控件中按名稱進行分組

我想在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

你需要設置'parent'這描述的項目之間的關係。更多信息: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) 

增加了每一次新的父節點。您應該檢查樹視圖是否已經包含具有相同文本的節點,如果沒有,則只添加一個新節點。

我建議你使關鍵字與父節點的文字相同,這樣可以更容易檢查它是否存在。

替換上面這樣的:

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

逐個添加節點並不是一個好主意。最好先創建所有節點,然後將它們全部添加到一個批次中。 – jmcilhinney

+0

@jmcilhinney:有點真實,但是如果你暫停重畫,那真的會有很大的不同嗎? –

相關問題