zoukankan      html  css  js  c++  java
  • WinForm------TreeList修改节点图标和按钮样式

    转载:

    https://documentation.devexpress.com/#WindowsForms/DevExpressXtraTreeListTreeList_CustomDrawNodeButtontopic

    1.修改节点图标

    (1)拖入TreeList控件(这里如何加载数据就不多说了哈)和ImageLIst控件

    a.给ImageList添加图像

    b.修改TreeList控件的属性

    (2).在属性栏找到TreeList控件的CustomDrawNodeImages事件,并添加以下代码

    private void treeList1_CustomDrawNodeImages(object sender, DevExpress.XtraTreeList.CustomDrawNodeImagesEventArgs e)
            {
                if (e.Node.Nodes.Count > 0)
                {
                    if (e.Node.Expanded)
                    {
                        e.SelectImageIndex = 2;
                        return;
                    }
                    e.SelectImageIndex = 1;
                }
                else
                {
                    e.SelectImageIndex = 0;
                }
            }

    (3)完成

    2.修改按钮样式

    在TreeList控件属性栏找到CustomDrawNodeButton事件,并添加以下代码

    private void treeList1_CustomDrawNodeButton(object sender, DevExpress.XtraTreeList.CustomDrawNodeButtonEventArgs e)
            {
                Rectangle rect = Rectangle.Inflate(e.Bounds, 0, -2);
    
                // painting background
                Brush backBrush = new LinearGradientBrush(rect, Color.Blue, Color.LightSkyBlue,
                  LinearGradientMode.ForwardDiagonal);
                
                //填充指定矩形内部
                e.Graphics.FillRectangle(backBrush, rect);
                
                //绘画3D边框
                ControlPaint.DrawBorder3D(e.Graphics, rect, Border3DStyle.RaisedOuter);
    
                //要显示的图画
                string displayCharacter = e.Expanded ? "-" : "+";
    
                //水平,垂直居中
                StringFormat outCharacterFormat = new StringFormat();
                outCharacterFormat.Alignment = StringAlignment.Center;
                outCharacterFormat.LineAlignment = StringAlignment.Center;
    
                //绘画图标
                e.Graphics.DrawString(displayCharacter, new Font("Verdana", 8, FontStyle.Bold),
                  new SolidBrush(Color.White), rect, outCharacterFormat);
    
                // 禁止默认的图标显示
                e.Handled = true;
            }
  • 相关阅读:
    单例模式的double check写法中的volatile关键字
    java开发中避免NullPointerException
    java.lang.NoClassDefFoundError: javax/xml/bind/JAXBContext
    linux环境工作记录
    常用Java开发者工具
    compile once,run anywhere
    Java 线程
    常用的git命令
    oracle 随笔
    常用px,pt,em换算表
  • 原文地址:https://www.cnblogs.com/tianhengblogs/p/5834202.html
Copyright © 2011-2022 走看看