• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > Devexpress treelist 简介

Devexpress treelist 简介

作者:一枚水 字体:[增加 减小] 来源:互联网 时间:2017-05-28

一枚水 通过本文主要向大家介绍了devexpress treelist,devexpress控件简介,devexpress简介,treelist,dev treelist等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

节点折叠 this.treeList1.CollapseAll();

  一、简介

二、属性列表

1、OptionsSelection:

  EnableAppearanceForcusedCell:选中的Cell的Appearance设置是否可用。默认为True;

  EnableAppearanceForcusedRow:选中的Node的Appearance设置是否可用。默认为True

  InvertSelection:设置选中风格是只应用于选中的Cell,还是应用于除选中的Cell之外的所有Cell。默认为False,即后者; 

  MultiSelect:是否可以选择多个Node。默认为False。

2、OptionsView:

   AutoCalcPreviewLineCount:是否自动计算预览节段的高度。默认为True;

   AutoWidth:是否允许列自动调整宽度;默认为True;

   EnableAppearanceEvenRow:生成偶数Node时,是采用由

  TreeListAppearanceCollection.EvenRow属性提供的Appearance

    设置,还是采用由TreeListAppearanceCollection.Row提供的

   Appearance设置。默认为False,即后者;

   EnableAppearanceOddRow:生成奇数Node时,是采用由

  TreeListAppearanceCollection.OddRow属性提供的Appearance

    设置,还是采用由TreeListAppearanceCollection.Row提供的

   Appearance设置。默认为False,即后者;

   ShowButtons:是否显示展开与收缩按钮。默认为True;

   ShowCloumns:是否显示列标题。默认为True;

   ShowFocusedFrame:在获得焦点的Cell上,是否显示焦点框架。默认为True;

   ShowHorzLines:是否显示水平线。默认为True;

   ShowIndentAsRowStyle:是否用相应Node的Appearance设置来生成Tree的缩进。默认为False

   ShowIndicator:是否显示Node的指示符面板。默认为True;

  ShowPreview:是否显示预览节段。默认为False;

  ShowRoot:是否在根Node间显示连接线。默认为True;

   ShowRowFooterSummary:是否显示分组脚注。默认为False;

  ShowSummaryFooter:是否显示摘要脚注。默认为False;

  ShowVertLines:是否显示垂直线。默认为True;

3、SelectImageList:选中Node时,显示图片的列表;

4、StateImageList:指明Node状态的图片的列表;

三、事件

四、使用

1、 如何隐藏TreeList的列头

   设置TreeListr的OptionsView的ShowColumns属性为:False

2、 如何默认展开所有的节点ExpandAll()

   tlvWells.ExpandAll();

    以及TreeNode.Expand   =   false   ; 

    或者你可以控制展开的层数 reeView1.ExpandLevel=10; 展开10层

  this.treeList.Nodes[0].ExpandAll();// 第一层下的所有接点展开

3、 如何让TreeList的每个结点高亮显示?

代码如下:

private void treeList1_CustomDrawNodeCell(object sender, DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs e)
    {
      TreeList node = sender as TreeList;
      if (e.Node == node.FocusedNode)
      {
        e.Graphics.FillRectangle(SystemBrushes.Window, e.Bounds);
        Rectangle r = new Rectangle(e.EditViewInfo.ContentRect.Left, e.EditViewInfo.ContentRect.Top,
        Convert.ToInt32(e.Graphics.MeasureString(e.CellText,  treeList1.Font).Width + 1), Convert.ToInt32(e.Graphics.MeasureString(e.CellText,treeList1.Font).Height));
        e.Graphics.FillRectangle(SystemBrushes.Highlight, r);
        e.Graphics.DrawString(e.CellText, treeList1.Font, SystemBrushes.HighlightText, r);
        e.Handled = true;
      }
    }
</div>

4、 数据绑定最基本的两个属性:KeyFieldName和ParentFieldName。

(这两个属性一设置就基本上可以实现分级了)可以通过代码的编写实现,也可以直接在属性里面直接实现。这种数据库设计是比较常见的,一般数据满足树形关系就可以这样设计。绑定数据时,只需指定DataSource为对应 的DataTable,指定KeyFieldName为表主键字段,ParentFieldName为表指向主键的外键字段名。

 private void BindData()
      {
      this.tlOffice.DataSource = dtOffice;
      tlOffice.KeyFieldName = "OfficeID";
      //tlOffice.DataMember = "OfficeName";
      tlOffice.Columns["OfficeName"].Caption = "局名称";
      tlOffice.ParentFieldName = "ParentOfficeID";
    }
</div>

5、 选择某一节点时,该节点的子节点全部选择  取消某一节点时,该节点的子节点全部取消选择

      哪个节点引起行为的?节点是选中还是取消选中?由此确定方法的两个参数:TreeListNode和CheckState。遍历该节点及其子孙,并将其选中状态设置为该节点的状态即可。

    /// 选择某一节点时,该节点的子节点全部选择 取消某一节点时,该节点的子节点全部取消选择
    /// <param name="node"></param>
    /// <param name="state"></param>
    private void SetCheckedChildNodes(TreeListNode node, CheckState check)
    {
      for (int i = 0; i < node.Nodes.Count; i++)
      {
        node.Nodes[i].CheckState = check;
        SetCheckedChildNodes(node.Nodes[i], check);
      }
  } 
</div>

上两步写好了,别忘了上面的两个方法在TreeList_AfterCheckNode里面触发:

private void tlOffice_AfterCheckNode(object sender, DevExpress.XtraTreeList.NodeEventArgs e) 
{ 
  SetCheckedChildNodes(e.Node, e.Node.CheckState); 
  SetCheckedParentNodes(e.Node, e.Node.CheckState); 
}
</div>

6、 某节点的子节点全部选择时,该节点选择;某节点的子节点未全部选择时,该节点不选择     

 /// 某节点的子节点全部选择时,该节点选择  某节点的子节点未全部选择时,该节点不选择
    /// <param name="node"></param>
    /// <param name="check"></param>
    private void SetCheckedParentNodes(TreeListNode node, CheckState check)
    {
      if (node.ParentNode != null)
      {
        CheckState parentCheckState = node.ParentNode.CheckState;
        CheckState nodeCheckState;
        for (int i = 0; i < node.ParentNode.Nodes.Count; i++)
        {
          nodeCheckState = (CheckState)node.ParentNode.Nodes[i].CheckState;
          if (!check.Equals(nodeCheckState))//只要任意一个与其选中状态不一样即父节点状态不全选
          {
            parentCheckState = CheckState.Unchecked;
            break;
          }
          parentCheckState = check;//否则(该节点的兄弟节点选中状态都相同),则父节点选中状态为该节点的选中状态
        }
        node.ParentNode.CheckState = parentCheckState;
        SetCheckedParentNodes(node.ParentNode, check);//遍历上级节点
      }
    }
</div>

 上两步写好了,别忘了上面的两个方法在TreeList_AfterCheckNode里面触发: 

private void tlOffice_AfterCheckNode(object sender, DevExpress.XtraTreeList.NodeEventArgs e)
    {
      SetCheckedChildNodes(e.Node, e.Node.CheckState);
      SetCheckedParentNodes(e.Node, e.Node.CheckState);
    }
</div>

7、 获取选中的复选框数据列表

 private List<int> lstCheckedOfficeID = new List<int>();//选择局ID集合
    /// 获取选择状态的数据主键ID集合
    /// <param name="parentNode">父级节点</param>
    private void GetCheckedO



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Devexpress treelist 简介
  • DevExpress TreeList 常见问题解决方法
  • DevExpress获取TreeList可视区域节点集合的实现方法
  • DevExpress之TreeList用法实例总结
  • DevExpress设置TreeList图片节点背景色的方法
  • DevExpress实现TreeList向上递归获取符合条件的父节点
  • DevExpress实现TreeList向上递归获取公共父节点的方法
  • DevExpress实现TreeList节点互斥的方法
  • DevExpress实现TreeList父子节点CheckState状态同步的方法
  • DevExpress实现TreeList按条件隐藏节点CheckBox的方法

相关文章

  • 2017-05-28C#转换日期类型实例
  • 2017-05-28C#数据结构之双向链表(DbLinkList)实例详解
  • 2017-05-28C#中除去所有在HTML元素中标记
  • 2017-05-28WPF实现时钟特效
  • 2017-05-28C# WinForm创建Excel文件的实例
  • 2017-05-28C#类中的属性使用总结(详解类的属性)
  • 2017-05-28C#编程实现自定义热键的方法
  • 2017-05-28c#注册客户端事件示例
  • 2017-05-28C#同步和异步调用方法实例
  • 2017-05-28C#实现异步连接Sql Server数据库的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 在C#中调用VBScript、javascript等脚本的实现代码
    • C#实现ListView选中项向上或向下移动的方法
    • C#中几个未知的Visual Studio编码技巧分享
    • C#使用钩子获得按键信息的方法
    • C#获取每个年,月,周的起始日期和结束日期的方法
    • 探讨:关闭浏览器后,php脚本会不会继续运行
    • C# 设计模式系列教程-装饰模式
    • C#使用xsd文件验证XML格式是否正确的实现方法
    • C#定时器实现自动执行的方法
    • C#中File类的文件操作方法详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有