.net中TreeView使用方法小结(1)

在新项目的开发中,TreeView的作用很重要,这两天好好的学习了一下treeview的使用方法。

这篇文章主要关注TreeView带有CheckBox的情况。

在TreeView中点击CheckBox触发的函数如下:

        private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
        {

        }
 

在这个事件中选中,或者取消的那一个节点为:

TreeNode node = e.Node;

使用TreeView控件要经常使用到递归算法。下面举两个例子:

窗体如下:

  • 选中父节点,则子节点也全部选中
        private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
        {
            TreeNode node = e.Node;
            if (node.Checked)
            {
                SetChildNodesState(e.Node);
            }
        }

        private void SetChildNodesState(TreeNode ParentNode)
        {
            if (ParentNode.Nodes != null)
            {
                foreach (TreeNode node in ParentNode.Nodes)
                {
                    node.Checked = true;
                    SetChildNodesState(node);
                }
            }
        }
  • 取消选中子节点,则父节点也取消选中
       private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
        {

            TreeNode node = e.Node;

            if (node.Checked == false)
            {
                SetParentNodeState(e.Node);
            }
        }

        private void SetParentNodeState(TreeNode ChildNode)
        {
            if (ChildNode.Parent != null)
            {
                ChildNode.Parent.Checked = false;
                SetParentNodeState(ChildNode.Parent);
            }
        }

未完待续

.net中TreeView使用方法小结(1),布布扣,bubuko.com

时间: 2024-12-23 11:24:48

.net中TreeView使用方法小结(1)的相关文章

.net中TreeView使用方法小结(2)

在实际开发中,很少是手工编辑TreeView节点,通常都是通过读取数据库或者其他数据文件的内容来编辑节点.在我现在开发的项目中就需要根据mdb中的数据来编辑节点. 数据库中表的内容如下:   TreeView的父子节点的关系是根据"F_No"字段内容与"F_SuperiorNo"字段内容的关系确定的.   编程思路是,首先得到F_SuperiorNo=1的所有城市名组成的一个ArrayList.这个ArrayList的中的每一项都包含着城市名和F_No(表现形式为城

WPF中TreeView.BringIntoView方法的替代方案

原文:WPF中TreeView.BringIntoView方法的替代方案 周银辉 WPF中TreeView.BringIntoView()方法并不是那么地好用,不少时候会没有效果,这里有一个替代方案,调用SelectItem()方法可以展开并呈现TreeView上指定的Item: public static class TreeViewHelper { /// <summary> /// Expands all children of a TreeView /// </summary&g

jQuery中调用WebService方法小结

个人感觉有比较方便的两点是:第一,在对WebService做ajax请求的时候,请求的url的写法是:服务地址/调用的方法名称,这样在请求的url中就确定了要调用的方法了,不必再在WebService代码中去判断ajax请求调用的是哪个方法了.第二,方法可以返回更多的数据类型,比如对象,泛型集合等:在ajax请求返回后,会自动将这些类型转换为json对象.而使用ashx的方式的话,需要先将这些类型转换为json格式的数据才能返回. 在使用jQuery调用WebService的方法的时候,只能发送

PHP中设置时区方法小结

1.修改php.ini,在php.ini中找到data.timezone =去掉它前面的;号,然后设置date.timezone = "Asia/Shanghai";即可. 2.在程序PHP 5以上版本的程序代码中使用函数ini_set('date.timezone','Asia/Shanghai');或者date_default_timezone_set('Asia/Shanghai'); 一些常用的时区标识符说明: Asia/Shanghai – 上海 Asia/Chongqing

C#中TreeView节点的自定义绘制方法

本文实例讲述了C#中TreeView节点的自定义绘制方法.分享给大家供大家参考.具体如下: if ((e.State & TreeNodeStates.Selected) != 0) { //演示为绿底白字 e.Graphics.FillRectangle(Brushes.DeepSkyBlue, e.Node.Bounds); Font nodeFont = e.Node.NodeFont; if (nodeFont == null) nodeFont = ((TreeView)sender)

c#中treeview的使用方法(转 )

本文主要介绍treeView控件中,添加,修改.删除节点的操作, 首先当窗体加载的时候,我们添加上图中所示的节点. 当点击“Delete the Selected”按钮时,被选中的节点将被删除. 当点击“Edit the Selected”按钮式,被选中的节点变成修改状态,此时我们可以对其修改. 其代码如下: private void Form1_Load(object sender, EventArgs e)       {           treeView1.LabelEdit = tr

SQL Server:存储过程中编写事务处理的方法小结

/**8. SQLServer存储过程中编写事务处理的方法小结**/ 原文出处: http://www.jb51.net/article/80636.htm 本文我们介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正确的代码. 1. 常见写法: 在编写SQL Server 事务相关的存储过程代码时,经常看到下面这样的写法: begin tran update statement 1 ... update statement 2 ... delete statement 3 ... c

C 中SqlParameter类的使用方法小结

C# 中SqlParameter类的使用方法小结 在c#中执行sql语句时传递参数的小经验 1.直接写入法: 例如: int Id =1; string Name="lui"; cmd.CommandText="insert into TUserLogin values("+Id+",'"+Name+"')"; 因为Id是数值,所以在传递的时候只需要在sql字符串中用"+Id+"即可实现,而   Name是

PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)/约束类型/魔术方法小结

  前  言  OOP  学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1  PHP中的抽象类与抽象方法 1.什么是抽象方法?              没有方法体 {} 的方法,必须使用abstract 关键字修饰.这样的方,我们叫做抽象方法.                    abstract function say(); //    抽象方法 2.什么是抽象类?