TreeList控制項的節點表徵圖設定,在顯示內容裡要麼設定為全部顯示,要麼全部不顯示。
當前項目需求為,個別節點設定為不可用,個別節點設定為只顯示線不顯示選擇框,由此只能拋棄treelist自身的checkbox顯示設定,自己畫表徵圖。
利用StateImage屬性設定表徵圖顯示,首先做一個表徵圖的枚舉,從資源檔裡讀取:
/// <summary> /// TreeList頁節點選擇狀態 /// </summary> public enum TreeNodeCheckImage { CheckedBranch = 0, //選中枝 UnCheckedBranch = 1,//未選中枝 CheckedLeaf = 2, //選中葉(暫不用,跟0一樣) UnCheckedLeaf = 3, //未選中葉(暫不用,跟1一樣) BranchLine = 4, //枝線 LeafLine = 5, //葉線 DisCheckedBranch = 6,//不讓選中枝 DisCheckedLeaf = 7,//不讓選中葉 Loading = 8 } /// <summary> /// TreeList節點表徵圖 /// </summary> public class TreeListImageState { /// <summary> /// 自訂TreeList節點表徵圖 /// </summary> /// <returns></returns> public static ImageList GetImageList() { ImageList treeListImageList = new ImageList(); treeListImageList.TransparentColor = System.Drawing.Color.Transparent; treeListImageList.Images.Add("0", OrgCertificate.Properties.Resources.tree_CheckedBranch); treeListImageList.Images.Add("1", OrgCertificate.Properties.Resources.tree_UnCheckedBranch); treeListImageList.Images.Add("2", OrgCertificate.Properties.Resources.tree_CheckedLeaf); treeListImageList.Images.Add("3", OrgCertificate.Properties.Resources.tree_UnCheckedLeaf); treeListImageList.Images.Add("4", OrgCertificate.Properties.Resources.tree_BranchLine); treeListImageList.Images.Add("5", OrgCertificate.Properties.Resources.tree_LeafLine); treeListImageList.Images.Add("6", OrgCertificate.Properties.Resources.tree_DisCheckedBranch); treeListImageList.Images.Add("7", OrgCertificate.Properties.Resources.tree_DisCheckedLeaf); treeListImageList.Images.Add("8", OrgCertificate.Properties.Resources.tree_Loading); treeListImageList.ImageSize = new System.Drawing.Size(20, 20); return treeListImageList; } /// <summary> /// 自訂TreeList節點表徵圖 /// </summary> /// <returns></returns> public static ImageCollection GetImageCollection() { ImageCollection treeListImageCol = new ImageCollection(); treeListImageCol.TransparentColor = System.Drawing.Color.Transparent; treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_CheckedBranch, "0"); treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_UnCheckedBranch, "1"); treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_CheckedLeaf, "2"); treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_UnCheckedLeaf, "3"); treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_BranchLine, "4"); treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_LeafLine, "5"); treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_DisCheckedBranch, "6"); treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_DisCheckedLeaf, "7"); treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_Loading, "8"); treeListImageCol.ImageSize = new System.Drawing.Size(20, 20); return treeListImageCol; } }}