开发者社区> geovindu> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Csharp: Treeview check list value

简介: /// <summary> /// 選擇的節點 /// 塗聚文 20121116 /// 捷為工作室 /// /// </summary> /// <param name="sender"></param>
+关注继续查看
/// <summary>
         /// 選擇的節點
         /// 塗聚文 20121116
         /// 捷為工作室
         /// 
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
         private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
         {
  #region  4
 
             if (e.Action != TreeViewAction.Unknown)
             {
 
                 //Event call by mouse or key-press
 
                 SetNodeCheckStatus(e.Node, e.Node.Checked);
 
             }
             #endregion 
 
 
         }
         /// <summary>
         /// 選擇的節點
         /// </summary>
         /// <param name="tn"></param>
         /// <param name="Checked"></param>
         private void SetNodeCheckStatus(TreeNode tn, bool Checked)
         {
 
             if (tn == null) return;
 
             // Check children nodes
 
             foreach (TreeNode tnChild in tn.Nodes)
             {
 
                 tnChild.Checked = Checked;
 
                 SetNodeCheckStatus(tnChild, Checked);
 
             }
 
             // Set parent check status
 
             TreeNode tnParent = tn;
 
             int nNodeCount = 0;
 
             while (tnParent.Parent != null)
             {
 
                 tnParent = (TreeNode)(tnParent.Parent);
 
                 nNodeCount = 0;
 
                 foreach (TreeNode tnTemp in tnParent.Nodes)
 
                     if (tnTemp.Checked == Checked)
 
                         nNodeCount++;
 
                 if (nNodeCount == tnParent.Nodes.Count)
 
                     tnParent.Checked = Checked;
 
                 else
 
                     tnParent.Checked = false;
 
             }
 
         }
 
 
         #region  選擇的節點
         /// <summary>
         /// http://www.codeproject.com/Questions/196856/C-NET-Treeview-Node-Checked
         /// http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.aftercheck.aspx
         /// </summary>
         /// <param name="treeNode"></param>
         /// <param name="nodeChecked"></param>
         public void CheckAllChildNodes(TreeNode treeNode, bool nodeChecked)
         {
             foreach (TreeNode node in treeNode.Nodes)
             {
                 node.Checked = nodeChecked;
                 if (node.Nodes.Count > 0)
                 {
                     this.CheckAllChildNodes(node, nodeChecked);
                 }
             }
         }
         #endregion
         /// <summary>
         /// 顯示選擇的節點
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
         private void button1_Click(object sender, EventArgs e)
         {
 
             DataTable dt = new DataTable();
             dt.Columns.Add("Uid", typeof(Guid));
             dt.Columns.Add("ID", typeof(int));
             dt.Columns.Add("Name", typeof(string));
             dt.Columns.Add("ParentID", typeof(int));
 
             List<TreeNode> selectedNodes = new List<TreeNode>();
             GetSelectedTreeNode(treeView1.Nodes, selectedNodes);
             int i = 0;
             foreach (TreeNode node in selectedNodes)
             {
                  if (!string.IsNullOrEmpty(node.ToolTipText))
                 {
                     dt.Rows.Add(new Guid(node.ToolTipText), node.Name, node.Text,node.Parent.Name);
                 }
                 i++;
             }
 
 
             dataGridView1.DataSource = dt;
             
             
 
            
            
         }
         /// <summary>
         /// 選擇的節點的值
         /// </summary>
         /// <param name="nodes"></param>
         /// <param name="selectedNodes"></param>
         void GetSelectedTreeNode(TreeNodeCollection nodes, List<TreeNode> selectedNodes)
         {
             foreach (TreeNode node in nodes)
             {
                 if (node.Checked)
                 {
                     selectedNodes.Add(node);
                 }
                 GetSelectedTreeNode(node.Nodes, selectedNodes);
             }
         }

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
解决访问tomcat下文件夹(如temp)显示有权限【在tomcat目录下创建文件需要管理员权限】的问题
解决访问tomcat下文件夹(如temp)显示有权限【在tomcat目录下创建文件需要管理员权限】的问题
78 0
C++中Vector/Map/List中尽量使用指针,避免直接保存对象
C++中Vector/Map/List中尽量使用指针,避免直接保存对象
88 0
一个SAP cds view test double的例子
一个SAP cds view test double的例子
44 0
where is application controller bound to application main view
Created by Jerry Wang, last modified on Jan 17, 2015
44 0
HDOJ1019Least Common Multiple
Problem Description The least common multiple (LCM) of a set of positive integers is the smallest positive integer which is divisible by all the numbers in the set.
914 0
【DATAGUARD】物理dg配置客户端无缝切换 (八.3)--客户端TAF 配置
【DATAGUARD】物理dg配置客户端无缝切换 (八.3)--客户端TAF 配置 1.1  BLOG文档结构图       1.
1233 0
Csharp: TreeView 初始化设置默认选择节点
/// &lt;summary&gt; /// 设置查找的节点为选定节点 /// 涂聚文 /// 2013-07-15 /// &lt;/summary&gt; /// &lt;param name="trvToSrch"&gt;&lt;/param&gt; /// &lt;pa
944 0
+关注
geovindu
读者是,读之者,者之读.一沙一世界! to be is to do举世皆清我独浊,众人皆醒我独醉.俺是农民工,程序员.
151
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载