轉——treeview的一些介紹

設置 Node 對象屬性
“樹”由一些層疊的“節點”分支構成,每個節點通常包括圖象(用 Image 屬性設置)和標籤(由 Text 屬性設置)。節點的圖象由與 TreeView 控件相關聯的 ImageList 控件提供。關於與其它控件共同使用 ImageList 控件的更多信息,請參閱“使用 ImageList 控件”。
  
節點可被展開或折回,這取決於它是否有子節點,即從它出發的節點。在最上層是“根”節點,每個“根”節點可以具有任何數目的子節點。節點的總數沒有限制(除非受到機器資源的限制)。圖 2.41 顯示了具有兩個根節點的樹。其中“Root 1”有三個子節點,“Child 3”自己又有一個子節點。“Root 2”有子節點,由“+”號指出,但沒有展開。
  
圖 2.41 根和子節點
  
  
樹中的每個節點實際上是可編程的 Node 對象,它屬於 Nodes 集合。同在其它集合中一樣,集合的每個成員具有唯一的 Index 和 Key 屬性,通過這些屬性可以訪問相應節點的其它屬性。例如,下面的代碼用特定節點的 Index (“7”) 設置其 Image 和 Text 屬性:
  
tvwMyTree.Nodes(7).Image = "closed"  
tvwMyTree.Nodes(7).Text = "IEEE"
  
然而,如果唯一的鍵被賦給了該節點,例如“7 ID”,那麼上述代碼可被改寫如下:
  
tvwMyTree.Nodes("7 ID").Image = "closed"
tvwMyTree.Nodes("7 ID").Text = "IEEE"
  
節點間的關係和對關係節點的引用
每個節點可以是子節點,也可以是父節點,這取決於它與其它節點之間的關係。Node 對象具有一些屬性,可以用來返回子節點或父節點的各種信息。例如,下面的代碼用 Children 屬性返回某個節點的子節點個數。
  
MsgBox tvwMyTree.Nodes(10).Children
  
然而,另外一些屬性與 Children 屬性不同,它們不返回信息,但返回對其它節點對象的引用。例如,Parent 屬性返回對特定節點(只要該節點不是根節點)的父節點的引用。利用該引用,可以調用適用於 Node 對象的任何方法或設置屬性來管理其父節點。例如,下面的代碼返回父節點的 Text 和 Index 屬性:
  
MsgBox tvwMyTree.Nodes(10).Parent.Text
MsgBox tvwMyTree.Nodes(10).Parent.Index
  
提示 使用 Set 語句處理 Node 類型的對象,以管理對其它 Node 對象的引用。例如,下面的代碼將 Node 對象變量設置爲 Parent 屬性返回的引用。然後用該對象變量返回相關節點的屬性:
  
Dim tempNode As Node '聲明對象變量。
'將對象變量設置爲返回的引用。
Set tempNode = tvwMyTree.Nodes(10).Parent  
MsgBox tempNode.Text '返回父節點的 Text。
MsgBox tempNode.Index '返回父節點的 Index。
  
向 Nodes 集合中添加 Node 對象
要將 Node 添加到樹中,可以用 Add 方法(Nodes 集合)。該方法包括兩個參數,relative 和 relationship,它們確定節點被加到何處。第一個參數 relative 指定節點名稱,第二個參數 relationship 指定新加入的節點與名爲 relative 的節點之間的關係。
  
例如,下面的代碼添加名爲“11 node”的節點,並使其成爲名爲“7 node”的節點的子節點。固有常數 tvwChild 指出新節點是前一參數所指定的節點的子節點。第三個參數設置新節點的 Key 屬性。
  
tvwMyTree.Nodes.Add "7 node", tvwChild, "11 node"
  
其它可能的關係包括:
  
常數 值 描述  
tvwLast 1 該 Node 被放在所有與 relative 節點同級的節點之後。  
tvwNext 2 該 Node 放在名爲 relative 的節點之後。  
tvwPrevious 3 該 Node 放在名爲 relative 的節點之前。  
tvwChild 4 該 Node 成爲名爲 relative 節點的子節點。  
  
  
例如,假設已存在三個節點,如果想將第四個節點放在第二個和第三個節點之間,則代碼如下:
  
'假設第二個節點的 Key 值爲“2 node”。
tvwMyTree.Nodes.Add "2 node", tvwNext
  
Add 方法的其它參數是 key、text 和 image。用這些參數,可以在創建 Node 對象時,爲其賦予 Key、Text 和 Image 屬性。
  
詳細信息 關於 Nodes 集合 Add 方法的更多信息,請在索引搜索中鍵入“Add 方法”並單擊“Add 方法 (Nodes 集合)”,參閱“Add 方法”。
  
添加節點的第二個方法是:聲明 Node 類型的對象變量,然後使用帶 Add 方法的 Set 語句。該 Set 語句將該對象變量設置爲新節點。然後就可以用該對象變量設置節點的屬性,如下所示:
  
Dim nodX As Node
Set nodX = tvwMyTree.Nodes.Add("10 node", tvwChild)
nodX.Key = "11 node"
nodX.Text = "IEEE"
nodX.Image = "closed"
  
提示 使用帶 Add 的 Set 語句,可使代碼可讀性強、容易調試。然而,如果使用 Add 方法及其參數添加節點,代碼速度更快。

發佈了39 篇原創文章 · 獲贊 3 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章