模仿windows7添加删除程序的treeview中的checkbox效果(转载)
2011-05-03 13:19
375 查看
//TreeView的AfterCheck事件 private void TvNodeInfo_AfterCheck(object sender, TreeViewEventArgs e) { CheckControl(e); } public void CheckControl(TreeViewEventArgs e) { if (e.Action != TreeViewAction.Unknown) { if (e.Node != null && !Convert.IsDBNull(e.Node)) { CheckParentNode(e.Node); if (e.Node.Nodes.Count > 0) { CheckAllChildNodes(e.Node, e.Node.Checked); } } } } private void CheckAllChildNodes(TreeNode treeNode, bool p) { foreach (TreeNode tn in treeNode.Nodes) { tn.Checked = p; if (tn.Nodes.Count > 0) { CheckAllChildNodes(tn, p); } } } private void CheckParentNode(TreeNode treeNode) { bool bChecked = false; if (treeNode.Parent != null) { foreach (TreeNode node in treeNode.Parent.Nodes) { if (node.Checked) { bChecked = true; break; } } if (bChecked) { treeNode.Parent.Checked = true; CheckParentNode(treeNode.Parent); } else { treeNode.Parent.Checked = false; CheckParentNode(treeNode.Parent); } } }
相关文章推荐
- 简单实现DataGrid添加CheckBox删除记录(转载纳米小心的博客)
- 用Nhibernate怎么实现数据的添加、删除、修改简单程序
- 【转载】MySQL5.7 添加用户、删除用户与授权
- 【转载】busybox中添加自己的程序
- UILabel添加删除线,类似团购效果
- [添加/删除程序]中无效信息的删除方法
- 从注册表中删除程序-----------转载于 http://bbs.krshadow.com/thread-54432-1-1.html
- 怎样删除软件残留在添加或删除程序中的信息?
- Ubuntu如何管理(添加或删除)开机启动程序
- 给图片添加水印效果 转载
- WIN7系统如何删除卸载程序(添加和删除程序)
- “添加/删除程序”工具无法正确地显示已安装的程序
- Jquery 实现动态添加table tr 和删除tr 以及checkbox的全选 和 获取添加TR删除TR后的数据
- CentOS 5 添加和删除程序的不能获得软件包信息问题
- Android 对TextView添加删除线,下划线,加粗,斜体等效果
- 清除 Windows XP “添加或删除程序”中的大片空白区域
- Android-UI布局---RecyclerView学习(六)item添加删除展现的动画效果
- CentOS使用光盘添加删除程序
- 带Checkbox的TreeView(一) 完美兼容IE、Firefox ,在js中添加了getCurrentNode(evt)方法,注册方法变为TreeView1.Attributes.Add("onclick", "CheckEvent