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