场景

Winform控件-DevExpress18下载安装注册以及在VS中使用:

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

在上面安装完DevExpress的基础上使用其Treelist控件。

然后就可以新建数据源的List,并赋值给TreeList。

效果

实现

新建Winform程序,然后拖拽一个TreeList

新建数据源类TreeNode

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace DevExpressSimple
{
class TreeNode
{
//标识Id
private string id;
//父级节点ID
private string parentId;
//节点显示文本
private string nodeText; public string NodeText
{
get { return nodeText; }
set { nodeText = value; }
}
public string ParentId
{
get { return parentId; }
set { parentId = value; }
} public string Id
{
get { return id; }
set { id = value; }
}
}
}

双击窗体进入窗体的加载事件中。

private void Form1_Load(object sender, EventArgs e)
{ string keyFieldName = "Id";
string parentFieldName = "ParentId";
//新建list数据源
List<TreeNode> data = new List<TreeNode>();
data.Add(new TreeNode() { Id = "root", ParentId = String.Empty, NodeText = "测试1" });
data.Add(new TreeNode() { Id = "first", ParentId = "root", NodeText = "测试2" });
//列
DevExpress.XtraTreeList.Columns.TreeListColumn colNode = new DevExpress.XtraTreeList.Columns.TreeListColumn();
//设置名字
colNode.Name = "名字";
//设置标题
colNode.Caption = "标题";
//设置从数据源分配给当前列的字段名。
colNode.FieldName = "NodeText";
//设置树列表中显示当前列的位置。
colNode.VisibleIndex = ;
//是否可见
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;
//先清除列
this.treeList1.Columns.Clear();
//将列数组添加到集合的结尾。
this.treeList1.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { colNode }); #region 绑定数据源
//设置属性KeyFieldName ParentFieldName
//设置一个值,该值指定绑定到XtratreeList控件的数据源的键字段
this.treeList1.KeyFieldName = keyFieldName;
//设置一个值,该值表示标识此数据源中父记录的数据源字段。
this.treeList1.ParentFieldName = parentFieldName;
this.treeList1.DataSource = data;
//刷新数据
this.treeList1.RefreshDataSource(); #endregion }

注:

1.list就是要显示的数据源,其中Id属性就是别的节点指定父节点的标志。

2.ParentId就是指定父节点,对应节点的Id属性,如果是根节点,则父节点为空。

3.NodeText就是节点要显示的文本。

4.给list赋值之后,还要告诉TreeList对应的关系,所以需要设置treelist的两个属性

KeyFiledName和ParentFiledName。其中KeyFiledName是指定绑定到控件的数据源的键字段,就是指定上面的Id,即作为节点标志的字段。

ParentFiledName是标志此数据 源中父记录的数据源字段。

5.然后还要使用TreeListColumn新建列对象,设置列相关的一些属性,还要通过FieldName指定从数据源中取哪个字段分配给这列。

6.更多的属性直接通过源码中查看源码属性获取。

源码下载

https://download.csdn.net/download/badao_liumang_qizhi/11614224

Winform中DevExpress的TreeList的入门使用教程(附源码下载)的更多相关文章

  1. Winform中实现ZedGraph的多条Y轴(附源码下载)

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  2. Web 开发中很实用的10个效果【附源码下载】

    在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...

  3. Winforn中实现ZedGraph自定义添加右键菜单项(附源码下载)

    场景 Winform中实现ZedGraph中曲线右键显示为中文: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100115292 ...

  4. 转:Web 开发中很实用的10个效果【附源码下载】

    原文地址:http://www.cnblogs.com/lhb25/p/10-useful-web-effect.html 在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多 ...

  5. ASP.NET中登录时记住用户名和密码(附源码下载)--ASP.NET

    必需了解的:实例需要做的是Cookie对象的创建和对Cookie对象数据的读取,通过Response对象的Cookies属性创建Cookie,通过Request对象的Cookies可以读取Cookie ...

  6. Winforn中DevExpress的TreeList中显示某路径下的所有目录和文件(附源码下载)

    场景 Winform中DevExpress的TreeList的入门使用教程(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  7. openlayers4 入门开发系列之地图导航控件篇(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  8. openlayers4 入门开发系列结合 echarts4 实现散点图(附源码下载)

    前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子 ...

  9. openlayers5-webpack 入门开发系列结合 echarts4 实现散点图(附源码下载)

    前言 openlayers5-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载 ...

随机推荐

  1. python 函数和函数名的应用

    一.函数 1.函数定义 def 关键字 -- 定义 func 函数名 -- 和变量定义规则一样 ()必须要写格式 : 声明语句结束 def my_len(): ​ 函数体 def func(a:int ...

  2. 洛谷 P3628 特别行动队

    洛谷题目页面传送门 题意见洛谷. 这题一看就是DP... 设\(dp_i\)表示前\(i\)个士兵的最大战斗力.显然,最终答案为\(dp_n\),DP边界为\(dp_0=0\),状态转移方程为\(dp ...

  3. app登录接口请求报:“签名验证失败”???已解决

    根据抓包数据获得url.param.header,在charles中compose请求结果为成功,在pycharm中运行则报:“签名验证失败”. 运行结果:

  4. .NET Core下操作Git,自动提交代码到 GitHub

    .NET Core 3.0 预览版发布已经好些时日了,博客园也已将其用于生产环境中,可见 .NET Core 日趋成熟 回归正题,你想盖大楼吗?想 GitHub 首页一片绿吗?今天拿她玩玩自动化提交代 ...

  5. 右键新建 .md

    右键新建 .md 文件 声明:虽然我成功了,并且右键出来了两个,但是在添加 .html 的过程中又失败了,找不到解决办法. win + r --> regedit --> enter 点击 ...

  6. python学习笔记(3)--函数、参数、变量、递归

    1.函数基本语法和特性 背景摘要 现在老板让你写一个监控程序,监控服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏出了所有的知识量吗,写出了以下代码 whi ...

  7. Spring源码剖析4:其余方式获取Bean的过程分析

    原型Bean加载过程 之前的文章,分析了非懒加载的单例Bean整个加载过程,除了非懒加载的单例Bean之外,Spring中还有一种Bean就是原型(Prototype)的Bean,看一下定义方式: 1 ...

  8. JavaScript浮点数运算的精度问题

    之前在做浮点数计算时,偶然发现计算结果有误差,度娘了解了下,补充整理了下. 误差是什么样子的呢?举例 console.log(0.1+0.2); // 0.30000000000000004 事实上在 ...

  9. js如何使用radio

    <input name="sex" type="radio" value="男" checked="checked" ...

  10. Android进阶之绘制-自定义View完全掌握(四)

    前面的案例中我们都是使用系统的一些控件通过组合的方式来生成我们自定义的控件,自定义控件的实现还可以通过自定义类继承View来完成.从该篇博客开始,我们通过自定义类继承View来实现一些我们自定义的控件 ...