欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

DevExpress的TreeList的常用属性设置以及常用事件

程序员文章站 2023-04-05 18:26:15
场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100061243 DevExpress的TreeList怎样设置数据源,从实例入手: https:/ ......

场景

winform控件-devexpress18下载安装注册以及在vs中使用:

https://blog.csdn.net/badao_liumang_qizhi/article/details/100061243

devexpress的treelist怎样设置数据源,从实例入手:

https://blog.csdn.net/badao_liumang_qizhi/article/details/102548490

在上面实现简单的treelist并设置数据源,显示效果仍然不是想要的树形结构的效果。

如果想实现如下这样效果,还需要进行进一步的属性设置。

DevExpress的TreeList的常用属性设置以及常用事件

 

 

注:

博客主页:

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

   /// 为树控件设置数据源
        /// </summary>
        /// <param name="treelist">树控件</param>
        /// <param name="data">数据对象</param>
        /// <param name="fieldname">显示的字段</param>
        /// <param name="keyfieldname">键字段</param>
        /// <param name="parentfieldname">父级键字段</param>
        public static void settreelistdatasource(devexpress.xtratreelist.treelist treelist, list<datatreenode> data, string fieldname, string keyfieldname, string parentfieldname)
        {
            #region 设置节点图标

            system.windows.forms.imagelist imglist = new system.windows.forms.imagelist();
            imglist.images.addrange(imgs);

            treelist.selectimagelist = imglist;

            //目录展开
            treelist.afterexpand -= treelist_afterexpand;
            treelist.afterexpand += treelist_afterexpand;

            //目录折叠
            treelist.aftercollapse -= treelist_aftercollapse;
            treelist.aftercollapse += treelist_aftercollapse;

            //数据节点单击,开启整行选中
            treelist.mouseclick -= treelist_mouseclick;
            treelist.mouseclick += treelist_mouseclick;

            //数据节点双击选中
            treelist.mousedoubleclick -= treelist_mousedoubleclick;
            treelist.mousedoubleclick += treelist_mousedoubleclick;

            //焦点离开事件
            treelist.lostfocus -= treelist_lostfocus;
            treelist.lostfocus += treelist_lostfocus;


            #endregion

            #region 设置列头、节点指示器面板、表格线样式

            treelist.optionsview.showcolumns = false;             //隐藏列标头
            treelist.optionsview.showindicator = false;           //隐藏节点指示器面板

            treelist.optionsview.showhorzlines = false;           //隐藏水平表格线
            treelist.optionsview.showvertlines = false;           //隐藏垂直表格线
            treelist.optionsview.showindentasrowstyle = false;

            #endregion

            #region 初始禁用单元格选中,禁用整行选中

            treelist.optionsview.showfocusedframe = true;                               //设置显示焦点框
            treelist.optionsselection.enableappearancefocusedcell = false;              //禁用单元格选中
            treelist.optionsselection.enableappearancefocusedrow = false;               //禁用正行选中
            //treelist.appearance.focusedrow.backcolor = system.drawing.color.red;      //设置焦点行背景色

            #endregion

            #region 设置treelist的展开折叠按钮样式和树线样式

            treelist.optionsview.showbuttons = true;                  //显示展开折叠按钮
            treelist.lookandfeel.usedefaultlookandfeel = false;       //禁用默认外观与感觉
            treelist.lookandfeel.usewindowsxptheme = true;            //使用windowsxp主题
            treelist.treelinestyle = devexpress.xtratreelist.linestyle.percent50;     //设置树线的样式

            #endregion

            #region 添加单列

            devexpress.xtratreelist.columns.treelistcolumn colnode = new devexpress.xtratreelist.columns.treelistcolumn();
            colnode.name = string.format("col{0}", fieldname);
            colnode.caption = fieldname;
            colnode.fieldname = fieldname;
            colnode.visibleindex = 0;
            colnode.visible = true;

            colnode.optionscolumn.allowedit = false;                        //是否允许编辑
            colnode.optionscolumn.allowmove = false;                        //是否允许移动
            colnode.optionscolumn.allowmovetocustomizationform = false;     //是否允许移动至自定义窗体
            colnode.optionscolumn.allowsort = false;                        //是否允许排序
            colnode.optionscolumn.fixedwidth = false;                       //是否固定列宽
            colnode.optionscolumn.readonly = true;                          //是否只读
            colnode.optionscolumn.showincustomizationform = true;           //移除列后是否允许在自定义窗体中显示

            treelist.columns.clear();
            treelist.columns.addrange(new devexpress.xtratreelist.columns.treelistcolumn[] { colnode });

            #endregion

            #region 绑定数据源

            treelist.keyfieldname = keyfieldname;
            treelist.parentfieldname = parentfieldname;
            treelist.datasource = data;
            treelist.refreshdatasource();

            #endregion

            #region 初始化图标

            setnodeimageindex(treelist.nodes.firstordefault());

            #endregion
        }