Tree控件的使用
圖 11 Tree控件的屬性列表
本文引用地址:http://www.biyoush.com/article/201701/337511.htm
- 改變某些單元格的屬性
從Tree控件可以看出它是有許多行和列組成的,其中每一行唯一的Tag值可以表征某一行,而列使用Numeric型數(shù)值指定,從0開始依次表示為第1行、第2行…。因此,如果需要改變某些單元格的屬性,需要首先指定哪些行和列。
如同multicolum listbox一樣,LabVIEW中使用Active屬性用以說明具體指向哪一個單元格。圖 12就是首先指定了Tag為C的行,第1列的單元格,然后輸出該單元格上顯示的文字。
圖 12 Tree控件的Active屬性
【注意】
- Cell Tag和Cell String是不同的,前者用來表示唯一的行,它的值必須唯一并且非空;而后者是單元格上顯示的文字,可以與Tag相同,也可以不同。
- 當設置Tag為TREE_ALL_ROWS時,表示此時選定所有的行,可以使用此屬性批量改變單元格的屬性,如背景色等。
- 當設置Tag為TREE_COLUMN_HEADERS時,表示選定所有的列頭。
- 當設置ActiveColumn為-2時表示選定所有的列;設置為-1時表示選定所有的列頭。
例如,需要把Tree控件第1列的字體設置為粗體,則可以使用圖 13所示的代碼。
圖 13 設置Tree控件第1列的字體設置為粗體
- Top Left Visible Cell屬性
該屬性使用的比較少,因此單獨介紹一下。它表示Tree控件左上角第1個單元格的位置,這個屬性在設置Tree控件滾動條的自動滾動時會經常使用。例如,當動態(tài)添加Tree控件的內容時,需要使Tree的滾動條隨著內容的增加而自動滾動,保證最后添加的內容保持可見,就可以使用該屬性。
可以嘗試使用圖 14所示的方法,并且在Tree控件中手動加入一些內容,任意拖動水平和垂直的滾動條,然后觀察輸出的值。
圖 14 Tree控件的Top Left Visible Cell屬性
- All Tags屬性和Displayed Items屬性
這兩個屬性比較類似,都是輸出Tree控件的Tag值。但是前者表示輸出所有行的Tag值;后者表示輸出可見行的Tag值,也就是說只輸出展開行的Tag值。可以單擊第2行左側的“—”符號,這樣第3行就處于隱藏狀態(tài),分別獲取這兩個屬性的值就很容易地知道二者的區(qū)別了。
1.4Tree控件對應的方法
典型的Tree控件方法如圖 15所示,共有六大類。前文敘述了Point to Row Column方法,而Double Click方法表示雙擊的哪一行(或者稱之為結點/Node),因此本節(jié)重點介紹其它的四類方法。
圖 15 Tree控件的方法
1.4.1展開和收縮Tree的結點
- Open/Close.Open/Close All:展開或收縮所有的結點(行)。
- Open/Close.Item:展開或收縮某個結點(行)
- Open/Close.Ensure Visible:允許某個子節(jié)點可見。與上面的兩個方法不同,該方法的輸入是一個子結點的Tag,而不是母結點的Tag。
1.4.2檢索Tree的結點
Navigate Tree中包含5個方法:Get Child、Get Next Item、Get Parent Item、Get Path和Get Previous Item。每個方法的功能如同它們的名字一樣,使用也比較簡單。
Get Next Item和Get Previous Item是一對相對的方法,在使用過程中有所不同,它是指同一層次的后一個結點和前一個結點。例如在圖 16中A結點的下一個結點是B,而前一個結點是空。B結點的下一個結點是E,而前一個結點是A,因為只有E結點與B是同一層次上的,C結點和D結點位于B的下一個層次上。同理,C結點的下一個結點是D,而上一個結點是空。
圖 16 Tree控件實例
1.4.3編輯Tree的結點
圖 17顯示了編輯Tree各個結點的所有方法,其中前三種表示增加結點操作,方式都大同小異。
評論