首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

TreeView 采購單第二季:父子節點 Key 設計與 VB.NET 綁定實現

     編輯:程式設計綜合問答

設計思路

父節點 Key = PO 號,子節點 Key = 產品號。TreeView 同層節點 Key 唯一,父子關係通過 Parent 屬性自動維護,無需拼接複合 Key。

VB.NET 完整綁定代碼

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim dt As New DataTable
    dt.Columns.Add("PO_NO", GetType(String))
    dt.Columns.Add("PRODUCT", GetType(String))
    ' 模擬數據
    dt.Rows.Add("PO150601", "鉛筆")
    dt.Rows.Add("PO150601", "橡皮擦")
    dt.Rows.Add("PO150602", "筆記本")
    dt.Rows.Add("PO150603", "") ' 空產品號

    Dim ndPO As TreeNode = Nothing
    For Each dr As DataRow In dt.Rows
        Dim poNo = dr("PO_NO").ToString()
        Dim prod = dr("PRODUCT").ToString()

        ' 新 PO 號創建父節點
        If ndPO Is Nothing OrElse ndPO.Name <> poNo Then
            ndPO = TreeView1.Nodes.Add(poNo, poNo.Substring(2)) ' Key=PO_NO, Text=後綴
        End If

        ' 產品號非空添加子節點
        If Not String.IsNullOrEmpty(prod) Then
            ndPO.Nodes.Add(prod, prod) ' Key=PRODUCT, Text=PRODUCT
        End If
    Next
End Sub

關鍵屬性說明

屬性用途
TreeNode.Name節點唯一 Key,同層不可重複,Nodes.Find(key, true) 可跨層查找
TreeNode.Text顯示文本
TreeNode.Parent父節點引用,無需通過 Key 查找
TreeNode.Nodes子節點集合,直接增刪改查

常見操作

  • 查找父節點:Dim parent = childNode.Parent
  • 展開所有:TreeView1.ExpandAll()
  • 選中節點事件:TreeView1_AfterSelect 中 e.Node 即當前節點。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved