DevExpress的TreeList怎样给树节点设置图标
場(chǎng)景
DevExpress的TreeList怎樣設(shè)置數(shù)據(jù)源使其顯示成單列樹(shù)形結(jié)構(gòu):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102742426
在上面設(shè)置TreeList的數(shù)據(jù)源并設(shè)置其為樹(shù)形結(jié)構(gòu)后,如何給樹(shù)形結(jié)構(gòu)設(shè)置圖標(biāo)
?
注:
博客主頁(yè):
https://blog.csdn.net/badao_liumang_qizhi
 關(guān)注公眾號(hào)
 霸道的程序猿
 獲取編程相關(guān)電子書(shū)、教程推送與免費(fèi)下載。
實(shí)現(xiàn)
首先按照上面搭建好樹(shù)形結(jié)構(gòu)和設(shè)置數(shù)據(jù)源之后效果如下
?
然后在項(xiàng)目下新建Resources目錄,將圖標(biāo)文件復(fù)制進(jìn)去
?
然后在窗體類(lèi)中獲取圖標(biāo)數(shù)組
?public static System.Drawing.Image[] imgs = new System.Drawing.Image[] {System.Drawing.Image.FromFile(@"../../Resources/a.png"),System.Drawing.Image.FromFile(@"../../Resources/b.png"),System.Drawing.Image.FromFile(@"../../Resources/c.png")};這里路徑為什么是兩層上級(jí)目錄,因?yàn)镽esources目錄相對(duì)應(yīng)bin/debug的目錄如此
?
然后在窗體加載完的事件中對(duì)TreeList設(shè)置完數(shù)據(jù)源之后,設(shè)置每個(gè)節(jié)點(diǎn)的圖標(biāo)。
System.Windows.Forms.ImageList imgList = new System.Windows.Forms.ImageList(); imgList.Images.AddRange(imgs); treeList1.SelectImageList = imgList; treeList1.Nodes.FirstOrDefault().ImageIndex = 0; treeList1.Nodes.FirstOrDefault().FirstNode.ImageIndex = 1; treeList1.Nodes.FirstOrDefault().FirstNode.FirstNode.ImageIndex = 2;這里是通過(guò)treeList1.Nodes.FirstOrDefault()找到第一個(gè)節(jié)點(diǎn)或者默認(rèn)節(jié)點(diǎn),即根節(jié)點(diǎn)。
然后通過(guò)FirstNode找到第一個(gè)子節(jié)點(diǎn)。
然后treeList1.SelectImageList = imgList設(shè)置其圖標(biāo)源是一個(gè)圖標(biāo)數(shù)組。
然后指定每個(gè)節(jié)點(diǎn)的ImageIndex 就是在圖標(biāo)數(shù)組中的索引。
完整示例代碼:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace TreeListTest {public partial class Form1 : Form{public static System.Drawing.Image[] imgs = new System.Drawing.Image[] {System.Drawing.Image.FromFile(@"../../Resources/a.png"),System.Drawing.Image.FromFile(@"../../Resources/b.png"),System.Drawing.Image.FromFile(@"../../Resources/c.png")};public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){#region 設(shè)置列頭、節(jié)點(diǎn)指示器面板、表格線(xiàn)樣式treeList1.OptionsView.ShowColumns = false;???????????? //隱藏列標(biāo)頭treeList1.OptionsView.ShowIndicator = false;?????????? //隱藏節(jié)點(diǎn)指示器面板treeList1.OptionsView.ShowHorzLines = false;?????????? //隱藏水平表格線(xiàn)treeList1.OptionsView.ShowVertLines = false;?????????? //隱藏垂直表格線(xiàn)treeList1.OptionsView.ShowIndentAsRowStyle = false;#endregion#region 初始禁用單元格選中,禁用整行選中treeList1.OptionsView.ShowFocusedFrame = true;?????????????????????????????? //設(shè)置顯示焦點(diǎn)框treeList1.OptionsSelection.EnableAppearanceFocusedCell = false;????????????? //禁用單元格選中treeList1.OptionsSelection.EnableAppearanceFocusedRow = false;?????????????? //禁用正行選中#endregion#region 設(shè)置TreeList的展開(kāi)折疊按鈕樣式和樹(shù)線(xiàn)樣式treeList1.OptionsView.ShowButtons = true;????????????????? //顯示展開(kāi)折疊按鈕treeList1.LookAndFeel.UseDefaultLookAndFeel = false;?????? //禁用默認(rèn)外觀與感覺(jué)treeList1.LookAndFeel.UseWindowsXPTheme = true;??????????? //使用WindowsXP主題treeList1.TreeLineStyle = DevExpress.XtraTreeList.LineStyle.Percent50;???? //設(shè)置樹(shù)線(xiàn)的樣式#endregion#region 添加單列DevExpress.XtraTreeList.Columns.TreeListColumn colNode = new DevExpress.XtraTreeList.Columns.TreeListColumn();colNode.Name = String.Format("col{0}", "NodeText");colNode.Caption = "NodeText";colNode.FieldName = "NodeText";colNode.VisibleIndex = 0;colNode.Visible = true;colNode.OptionsColumn.AllowEdit = false;??????????????????????? //是否允許編輯colNode.OptionsColumn.AllowMove = false;??????????????????????? //是否允許移動(dòng)colNode.OptionsColumn.AllowMoveToCustomizationForm = false;???? //是否允許移動(dòng)至自定義窗體colNode.OptionsColumn.AllowSort = false;??????????????????????? //是否允許排序colNode.OptionsColumn.FixedWidth = false;?????????????????????? //是否固定列寬colNode.OptionsColumn.ReadOnly = true;????????????????????????? //是否只讀colNode.OptionsColumn.ShowInCustomizationForm = true;?????????? //移除列后是否允許在自定義窗體中顯示treeList1.Columns.Clear();treeList1.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { colNode });#endregiontreeList1.KeyFieldName = "Id";treeList1.ParentFieldName = "ParentId";DataTreeNode node1 = new DataTreeNode();node1.Id = "1";node1.ParentId = null;node1.NodeText = "1公眾號(hào)";DataTreeNode node11 = new DataTreeNode();node11.Id = "2";node11.ParentId = "1";node11.NodeText = "1-1霸道的程序猿";DataTreeNode node111 = new DataTreeNode();node111.Id = "3";node111.ParentId = "2";node111.NodeText = "1-1-1大量編程資源";List<DataTreeNode> data = new List<DataTreeNode>();data.Add(node1);data.Add(node11);data.Add(node111);treeList1.DataSource = data;treeList1.RefreshDataSource();System.Windows.Forms.ImageList imgList = new System.Windows.Forms.ImageList();imgList.Images.AddRange(imgs);treeList1.SelectImageList = imgList;treeList1.Nodes.FirstOrDefault().ImageIndex = 0;treeList1.Nodes.FirstOrDefault().FirstNode.ImageIndex = 1;treeList1.Nodes.FirstOrDefault().FirstNode.FirstNode.ImageIndex = 2;}} }?
總結(jié)
以上是生活随笔為你收集整理的DevExpress的TreeList怎样给树节点设置图标的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: DevExpress的TreeList怎
- 下一篇: Winform中怎样获取项目图片资源并转
