標籤:
1.如何展開目錄時改變表徵圖(注意:不是選中時)
要在目錄中使用表徵圖首先要加入一個控制項ImageList(命名為imageList1),然後可以按圖片的index或名稱引用圖片.
然後需要在TreeView控制項的ImageList屬性中指向imageList1.
TreeView有兩個屬性:
SelectImageIndex:選中該結點時顯示的圖片的索引
ImageIndex:未選中該結點時顯示的圖片的索引
可以實現的效果是,選中某個結點時該結點的圖片進行改變,如果我們的目標也是如此,萬事已經大吉了.
但我希望的效果是:展開某個結點時該結點的圖片改變(如顯示為開啟的盒子),摺疊時該結點的圖片改變(如封裝好的盒子).直接使用屬性無法實現該效果.
實現原理是:展開某個結點時將SelectImageIndex和ImageIndex統統指向開啟盒子的圖片
摺疊某個結點時將SelectImageIndex和ImageIndex統統指向封裝盒子的圖片
自然需要用到兩個事件:TreeView的AfterExpand和AfterCollapse事件
private void treeView1_AfterExpand(object sender, TreeViewEventArgs e) { e.Node.ImageIndex = 1; //指向展開的表徵圖 e.Node.SelectedImageIndex = 1;//指向展開的表徵圖 } private void treeView1_AfterCollapse(object sender, TreeViewEventArgs e) { e.Node.ImageIndex = 0; //指向關閉的表徵圖 e.Node.SelectedImageIndex = 0;//指向關閉的表徵圖 }
PS:當對某個結點的屬性
ImageIndex和SelectedImageIndex賦值後,向它添加的子結點如未指定該屬性,似乎會沿用父結點的屬性,所以通常我會對子結點單獨設定該值 .
C#Winform中treeView控制項使用總結