1. 在設計界面添加imageCollection控件,在屬性頁設置圖標(可Load from disk,也可從Load from dev gallery)


2. TreeList控件有一個叫做CustomDrawNodeImages 的事件,雙擊該事件編寫后台代碼。
3. 添加節點圖標需要用到TreeList 的SelectImageList屬性,該屬性是指當節點被選中時顯示的圖標(相應的還有另外兩個ColumnImageList和StateImageList屬性)
4. 最開始思考這個問題是,我是這樣想的,如果是葉子節點的話顯示圖標3,否則對於非葉子結點,若展開了顯示圖標2,未展開顯示圖標1。
方法一代碼如下:
if (e.Node.Nodes.Count > 0) { if (e.Node.Expanded) { e.SelectImageIndex = 2; return; } e.SelectImageIndex = 1; } else { e.SelectImageIndex = 3; }
5. 我的需求是一個六層的導航樹,后來又想讓每一層的結點圖標都不一樣,於是又想到了第二種方法,這個方法用到了結點的level屬性,它代表當前節點所在的層數。這樣可以根據當前level的不同來給每一層節點添加圖標。
//方法1:node.level 代表當前節點所在的層數,借此可以實現給每一層節點添加不同的圖標 switch (e.Node.Level) { case 0: e.SelectImageIndex = 0; break; case 1: case 2: case 3: case 4: if (e.Node.Expanded) { e.SelectImageIndex = 2; } else { e.SelectImageIndex = 1; } break; case 5: e.SelectImageIndex = 3; break; default: break; }
