TreeView checkbox

C# TreeView checkbox 联动打勾

  #region 将树的checkbox选中
        private void setNodeTrue(Node selNode) {
            Node node = selNode.Parent;
            if (node != null) {
                node.CheckState =  CheckState.Checked;
                setNodeTrue(node);
            }
        }
        #endregion
        #region 将树的checkbox选中
        private void setNodeStateTrue(Node selNode)
        {
            if (selNode.CheckBoxVisible)
            {
                selNode.CheckState =  CheckState.Checked;
                foreach (Node node in selNode.Nodes)
                {
                    setNodeStateTrue(node);                }
            }
        }
        #endregion        #region 将树的checkbox取消选中
        private void setNodeStateFalse(Node selNode)
        {
            if (selNode.CheckBoxVisible) {
                selNode.CheckState =  CheckState.Unchecked;
                foreach (Node node in selNode.Nodes)
                {
                    setNodeStateFalse(node);                }
            }
        }
        #endregion        #region 将树的checkbox取消选中
        private void setNodeFalse(Node selNode)
        {
            Node nextNode = selNode.NextNode;
            Node previousNode = selNode.PrevNode;
            Node praNode = selNode.Parent;
            if (praNode != null) {
                while (nextNode != null)
                {
                    if (nextNode.Checked)
                    {
                        return;
                    }
                    nextNode = nextNode.NextNode;
                }
                while (previousNode != null)
                {
                    if (previousNode.Checked)
                    {
                        return;
                    }
                    previousNode = previousNode.PrevNode;
                }
                praNode.CheckState =  CheckState.Unchecked;
                setNodeFalse(praNode);
            }
        }
        #endregion  #region 单击树的checkbox事件
        private void tvDevice_AfterCheck(object sender, AdvTreeCellEventArgs e)
        {
            Node node = tvDevice.SelectedNode;
            if (node.Checked)
            {                setNodeTrue(node);
                setNodeStateTrue(node);
            }
            else {
                setNodeStateFalse(node);
                setNodeFalse(node);
            }
        }
        #endregion 

原文来自 http://hi.baidu.com/jm_li_cn/item/ce4cec163f02932bd0d66dbb
时间: 2024-11-01 10:19:36

TreeView checkbox的相关文章

TreeView checkbox 全选

在使用TreeView 控件 ,进行权限管理的时候,需要使用 checkbox全选. 勾选父节点,子节点全部选中.取消父节点,子节点不选中. 勾选子节点,父节点也选中. 以下是在使用的例子: <asp:TreeView ID="TVPermission" runat="server" NodeIndent="20" Target="mainFrame" ExpandDepth="2" ShowChec

kendo treeview checkbox初始化选中问题,没解决,暂时记录下

想做带有checkbox的tree,由于项目一直用kendo ui for mvc,感觉 牛逼的kendo肯定有tree.结果碰到了选中的问题. 无法根据后台传来的IsChecked字段来设置  tree的选中状态.暂时不知道原因. 后台 接口 #region 地区 tree public JsonResult GetAreasTree(int? id) { //id = id.GetValueOrDefault(); //List<Area> allAreas = _commonServic

TreeView CheckBox勾选联动

在C# Winform项目中用到了TreeView控件,并且需要勾选的功能.父子节点联动,需要实现如下: 1.当选中父节点的时候,如果它的子节点有没有选中的,则选中. 2.当取消选中父节点的时候,将所有子节点都取消选中. 3.当选中子节点的时候,要判断它的父节点中的所有子节点,是不是都已经选中,如果都选中则选中父节点. 4.当取消子节点的时候,要判断父节点是否已经被勾选上,如果勾选上则取消选中父节点. 注意:所有的节点都有可能既是父节点,又是子节点.举例:当效果3满足时,选中了父节点,那么这个父

WinForm控件TreeView 只部分节点显示 CheckBox

WinForm控件TreeView 只部分节点显示  CheckBox 用过asp.net的应该知道,要在treeview中实现上述功能可以使用ShowCheckBox 属性指定那些节点显示checkbox哪些不显示,可是winform中的treeview只提供一个ShowCheckBoxes 属性,要么全部节点显示checkbox,要不全部不显示,而指定节点没有ShowCheckBox 属性,下面就在winform的treeview中实现BS对应CheckBox 属性的功能  方法1: a) 

WPF 带CheckBox、图标的TreeView

WPF 带CheckBox.图标的TreeView 在WPF实际项目开发的时候,经常会用到带CheckBox的TreeView,虽然微软在WPF的TreeView中没有提供该功能,但是微软在WPF中提供强大的ItemTemplate模板功能和自定义样式,那我们可以自己写一个这样的控件供自己使用. 我自己写的这个比较简单. 首先写一个供TreeView使用的数据模型,并且实现INotifyPropertyChanged接口,用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知,当属性改

TreeView树Checkbox选中问题

//向上选中所有父节点 function setParentState(objNode) { var objParentDiv = WebForm_GetParentByTagName(objNode, "div"); if (objParentDiv == null || objParentDiv == "undefined") return; var divID = objParentDiv.getAttribute("ID"); var p

Silverlight TreeView 带 checkbox和图片

前段时间做Silverlight TreeView 控件,但是要带checkbox和图片,在网上到处找相关的例子,效果图如下 xaml代码 <UserControl x:Class="SlmenuTest.Tree" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xam

WPF:带复选框CheckBox的树TreeView

最近要用WPF写一个树,同事给了我一个Demo(不知道是从哪里找来的),我基本上就是参照了这个Demo. 先放一下效果图(3棵树): 这个树索要满足的条件是: 父节点.Checked=true时,子节点全部选中(反之成立): 父节点.Checked=false时,子节点全部不选中(反之成立): 子节点存在部分节点选中,部分节点未选中时,父节点为非全选状态(null)(反之成立): 那么这个树究竟要怎么造出来呢? 由于用WPF,且用MVVM模式,故TreeView的ItemSource及复选框的选

C# Winform 点击TreeView控件节点的CheckBox不触发NodeMouseClick事件的做法

之前有个问题很困扰我,因为项目需要,我给TreeView控件的每个node节点加上了CheckBox,当我点击CheckBox时便会触发NodeMouseClick事件,而我只希望点击节点文本时才触发这个事件,终于在此博客找到解决方案http://blog.csdn.net/yunhaic/article/details/6409526 博主:徐云海 private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEv