場景
DevExpress的TreeList怎樣設置數據源使其顯示成單列樹形結構:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102742426
在上面設置TreeList的數據源並設置其為樹形結構后,如果想要自定義NodeCell的背景色和前景色。
效果如下
注:
博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
通過重寫treelist的CustomDrawNodeCell事件來實現
treeList.CustomDrawNodeCell -= treeList_CustomDrawNodeCell;
treeList.CustomDrawNodeCell += treeList_CustomDrawNodeCell;
然后在重寫的事件中
private static void treeList_CustomDrawNodeCell(object sender, DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs e) { //確定列的名字不為空 if (e.Column.Name.ToString() != null) { Color color = new Color(); //獲取要設置的顏色--通過e.CellValue獲取當前node節點的值,然后在字典映射中獲取要設置的color對象 Global.Instance.CurveComColorMapping.TryGetValue(e.CellValue.ToString(), out color); //設置背景色 e.Appearance.BackColor = color; //設置開啟背景色 e.Appearance.Options.UseBackColor = true; //設置前景色 e.Appearance.ForeColor = Color.White; //設置開啟前景色 e.Appearance.Options.UseForeColor = true; } }
注:
上面的是通過e.CellValue來獲取節點的值,然后通過提前設置好的節點與顏色的映射來獲取要設置的顏色。
鍵值對的映射定義如下
private Dictionary<string, System.Drawing.Color> _curveComColorMapping = new Dictionary<string,System.Drawing.Color>();
這樣就能實現根據配置好的節點與顏色的對應關系將節點設置為不同的顏色。