DevExpress--TreeList節點添加圖片


這個過程相對來說比較簡單,網上也有不少資料,但是自己在做過之后為了記住,算是給自己寫一個博客吧。

下面直接上具體的流程

1、前提

控件使用的都是DevExpress和winform的原生控件兩種;

2、所需界面控件

在界面上需要添加兩個控件:一是DevExpress的Treelist樹,二是winform的imagelist(或者使用DevExpress的imagecollection也可以)

3、為imagelist添加圖片

因為是樹結構目錄的節點圖片,因此大小一般要求是16x16的。將需要使用的圖片添加到imagelist中。

在這里需要注意的是,如果中途刪除了圖片,一定要重新確認imagelist中剩余圖片的索引,因為imagelist刪除圖片后會自動變更剩余圖片的索引。

4、treelist屬性設置

找到treelist控件的SelectImageList屬性,將剛剛建立好的imagelist綁定到這個屬性上;

5、treelist事件綁定

找到treelist的CustomDrawNodeImages事件,雙擊建立事件執行方法並添加控制代碼:

private void treeList1_CustomDrawNodeImages(object sender, DevExpress.XtraTreeList.CustomDrawNodeImagesEventArgs e)
        {
            //如果有子節點,那么需要根據節點是否展開的狀態賦值不同的圖片;從而實現節點的展開和關閉是不同圖片的功能
            if (e.Node.HasChildren)
                if (e.Node.Expanded)
                    e.SelectImageIndex = 1;
                else
                    e.SelectImageIndex = 0;
            else
                e.SelectImageIndex = 2;
        }

方法中的具體控制代碼可以根據需要來實際確認。另外,其中imageIndex的數值就是第三步中imagelist中需要使用的節點圖片的索引值。

同時,在非葉子節點的狀態下增加是否展開狀態的判斷,可以實現節點在打開和關閉的不同狀態下是不同圖片的功能。

**注意**:必須使用SelectImageIndex這個參數,而不能使用e.Node.ImageIndex的方式賦值(此時會出現“集合已修改;可能無法執行枚舉操作”的錯誤,但是目前不理解為什么為出現這個問題,暫時先記住正確的使用方式吧)。

6、結果

經過以上步驟,在程序運行起來后,樹節點就會綁定上指定的圖片;同時實現節點的打開和關閉狀態圖標變化的功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM