1,树控件的上下左右移动。将此组件放到TreeView的keyup事件中,即可看到效果
2.查找遍历树节点,三种方法
#region "控制树节点移动,向左右上下" /// <summary> /// 控件树节点移动 /// </summary> /// <param name="Tv">TreeView控件</param> /// <param name="e">TreeView的按键事件</param> public void MoveSelectedNode(TreeView Tv,KeyEventArgs e) { if (Tv.SelectedNode==null) { return; } if (e.KeyCode==Keys.Up && e.Control==true) { TreeNode selNode = Tv.SelectedNode; //当前选中的节点 TreeNode tempNode =(TreeNode)Tv.SelectedNode.Clone(); if (selNode.PrevNode == null) { return; } else { if (selNode.Parent == null) //表示一级节点 { Tv.Nodes.Insert(selNode.Index - 1, tempNode); selNode.Remove(); Tv.SelectedNode = tempNode; } else { selNode.Parent.Nodes.Insert(selNode.Index - 1, tempNode); selNode.Remove(); Tv.SelectedNode = tempNode; } } } else if (e.KeyCode==Keys.Down && e.Control==true) { TreeNode selNode = Tv.SelectedNode; //当前选中的节点 TreeNode tempNode =(TreeNode)Tv.SelectedNode.Clone(); if (selNode.NextNode==null) { return; } if (selNode.Parent == null) //表示一级节点 { Tv.Nodes.Insert(selNode.Index + 2, tempNode); } else { selNode.Parent.Nodes.Insert(selNode.Index + 2, tempNode); } selNode.Remove(); Tv.SelectedNode = tempNode; } else if (e.KeyCode == Keys.Left && e.Control==true) { TreeNode selNode = Tv.SelectedNode; //当前选中的节点 TreeNode tempNode = (TreeNode)Tv.SelectedNode.Clone(); if (selNode.Parent==null)//表示一级节点 { return; } if (selNode.Parent.Parent == null) //表示是三级节点 { Tv.Nodes.Add(tempNode); } else { selNode.Parent.Parent.Nodes.Add(tempNode); } selNode.Remove(); Tv.SelectedNode = tempNode; } else if (e.KeyCode==Keys.Right && e.Control==true) { TreeNode selNode = Tv.SelectedNode; //当前选中的节点 TreeNode tempNode = (TreeNode)Tv.SelectedNode.Clone(); if (selNode.NextNode==null) { return; } selNode.NextNode.Nodes.Insert(0, tempNode); selNode.Remove(); Tv.SelectedNode = tempNode; } } #endregion
2.查找遍历树节点,三种方法
#region "查找遍历树节点" /// <summary> /// 查找遍历树节点,根据节点名称 /// </summary> /// <param name="Tv">要查找的树</param> /// <param name="NodeName">查找的树的节点名称</param> /// <returns>TreeNode[]</returns> public TreeNode[] FindTreeNodeFromNodeName(TreeView Tv, string NodeName) { if (Tv.Nodes!=null) { return Tv.Nodes.Find(NodeName, true); } return null; } /// <summary> /// 查找遍历树节点,根据树节点路径 /// </summary> /// <param name="Tv">要查找的树</param> /// <param name="NodeFullPath">查找树的节点路径</param> /// <returns></returns> public TreeNode FindTreeNodeFromNodePath(TreeView Tv, string NodeFullPath) { string tempPath = string.Empty; if (NodeFullPath.LastIndexOf("\\") > 0) //节点0//节点3//节点8 { tempPath = NodeFullPath.Substring(NodeFullPath.LastIndexOf("\\") + 1); } else { tempPath = NodeFullPath; } TreeNode[] Node = FindTreeNodeFromNodeName(Tv, tempPath); foreach (TreeNode aNode in Node) { if (aNode.FullPath == NodeFullPath) { return aNode; } } return null; } /// <summary> /// 查找遍历树节点,根据树节点tag /// </summary> /// <param name="Tv">要查找的树</param> /// <param name="tag">要查找的tag值</param> /// <returns></returns> public TreeNode[] FindTreeNodeFromNodeTag(TreeView Tv, string tag) { try { TreeNode[] tNode = null; if (Tv == null && Tv.Nodes.Count == 0) { return null; } System.Collections.ArrayList aList = new System.Collections.ArrayList(); foreach (TreeNode node in Tv.Nodes) { ForTreeNode(node, tag, ref aList); } tNode = new TreeNode[aList.Count]; for (int i = 0; i < aList.Count; i++) { tNode[i] = (TreeNode)aList[i]; } return tNode; } catch { return null; } } /// <summary> /// 递归树的节点 /// </summary> /// <param name="node">要遍历的节点</param> /// <param name="tag">查找的Tag值</param> /// <param name="aList"></param> private void ForTreeNode(TreeNode node, string tag, ref System.Collections.ArrayList aList) { if (node.Tag!=null && node.Tag.ToString()==tag) { aList.Add(node);//将节点添加到数组中 } foreach (TreeNode iNode in node.Nodes) { ForTreeNode(iNode,tag,ref aList); } } #endregion
发表评论
-
C# 实现将文件夹分卷压缩
2015-04-17 17:01 1241http://bbs.csdn.net/topics/3907 ... -
C#发送邮件
2015-04-17 15:58 696public class SendEmailHelper ... -
C# xml文件读取
2015-02-11 16:08 648看附件................ -
什么时候该用委托,为什么要用委托,委托有什么好处....
2015-01-29 16:56 818http://www.cnblogs.com/superpce ... -
C#中动态加载和卸载DLL
2015-01-26 14:02 1425在C++中加载和卸载DLL是一件很容易的事,LoadLibra ... -
转:c#常用的18种设计模式
2015-01-21 08:16 777http://blog.jobbole.com/78130/ -
C#委托的介绍(delegate、Action、Func、predicate)
2015-01-09 17:26 1131http://www.cnblogs.com/akwwl/p/ ... -
接口和抽象类有什么区别 .
2014-12-22 16:35 617接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么 ... -
C#一个简单写日志文件的类
2014-12-11 09:57 1111/// <summary> /// L ... -
Linq初级班 Linq to DataSet体验(单表、多表联合查询JOIN语法)
2014-12-10 14:34 355http://www.cnblogs.com/huangcon ... -
C#泛型详解
2014-11-29 11:31 482我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处 ... -
线程同步与异步的区别
2014-11-26 09:12 882异步处理就是按照不同步的程序处理问题。异步处理与同步处理是对立 ... -
应用C#和SQLCLR编写SQL Server用户定义函数 .
2013-10-09 17:07 484http://blog.csdn.net/zhzuo/arti ... -
log4Net简介
2013-06-30 11:32 575使用log4Net可以将系统听日志保存到DB、日志文件、邮箱中 ... -
DataGridView历史记录的前进与后退操作
2013-06-23 11:13 1108此功能介绍:DataGridView频繁查询数据时,可以将每次 ... -
c# 对INI配置文件的读取操作
2013-06-17 10:51 678此种方法只对如下格式的INI文件起作用 server=loca ... -
对DataGridView控件的扩展开发
2013-06-15 21:47 2379首先在项目中引用 ... -
对集合控件(ListBox,ComboBox,TreeView,RichTextBox,DataGridView)的查找、替换操作控件
2013-06-15 09:39 1549一、程序入口: using System; using ... -
C#对文件、文件夹操作公用组件
2013-06-11 09:46 968namespace HR.Class.IO { / ... -
TreeView控件操作开发篇之(五)
2013-06-09 00:09 828#region 加载文件夹及文件到树 ...
相关推荐
这篇博客文章,通过链接,详细讲解了`TreeView`控件的使用方法,主要涉及以下几个关键知识点: 1. **基本概念**:`TreeView`控件由一系列的`TreeNode`对象组成,每个`TreeNode`代表一个层级。根节点通常表示顶层...
在Web开发中,TreeView控件工具是构建这些交互式树状视图的关键组件。本篇文章将深入探讨TreeView控件的相关知识,以jQuery Treeview为例进行详细解析。 首先,TreeView控件的基本功能包括展开、折叠节点,以及通过...
本篇将详细介绍TreeView控件的基本用法,以及如何在实际开发中有效利用它。 **一、TreeView控件的基本元素** 1. **节点(Node)**:TreeView中的基本单位,可以包含子节点,形成层级结构。每个节点通常由一个文本...
本篇文章将深入探讨如何使用TreeView控件在VS2005中设计OA办公系统的导航。 1. **TreeView控件介绍** TreeView控件是ASP.NET提供的一种用于显示层次结构数据的控件,它可以模拟Windows操作系统中的文件资源管理器...
在Windows Forms开发中,`TreeView`控件是一个常用的组件,用于展示层次化的数据结构,例如文件系统、组织结构等。本篇文章将详细讲解如何在C#的WinForms环境中,利用.NET Framework 2.0实现`TreeView`控件的拖放...
Treeview控件是Windows应用程序开发中常用的一种图形用户界面(GUI)组件,它通常用于显示层级结构的数据,如文件系统、组织结构或者数据库中的树状数据。在本篇中,我们将深入探讨Treeview控件的功能、特性以及如何...
在.NET开发中,TreeView控件是一个常用的数据呈现组件,它以树形结构显示数据,常用于网站或应用程序的导航和信息展示。实现右键菜单编辑功能对于增强用户体验和交互性非常关键。本篇将深入探讨如何在TreeView控件中...
本篇将详细讲解如何使用.NET TreeView控件,并结合MySQL数据库进行数据交互。 一、TreeView控件基础 1. 添加TreeView控件:在Visual Studio的设计界面中,从工具箱选择TreeView控件并将其拖放到窗体上。也可以通过...
1. **TreeView控件的基本概念** `TreeView`控件由一系列`TreeNode`对象组成,每个`TreeNode`代表树结构中的一个节点。节点可以有父节点和子节点,形成层级关系。`TreeView`控件提供了丰富的事件和方法,便于操作...
总之,通过巧妙地结合C#中的ComboBox和TreeView控件,我们可以创建出具有层次感的用户界面,使用户能更直观、方便地浏览和操作层次结构的数据。这种技术在各种应用场景中都十分有用,比如配置管理、文件浏览等。理解...
在Windows应用程序开发中,TreeView控件是一个非常常用且功能强大的组件。它允许用户以树状结构展示数据,常用于文件系统、目录结构或者层次关系的数据表示。本篇将深入探讨`TreeView`控件的使用,以及如何实现描述...
在本篇中,我们将深入探讨ASTreeView 1.3.0,一个针对ASP.NET平台优化的高级Treeview控件,它具备了丰富的功能和优秀的用户体验。 **ASTreeView特性** 1. **拖放功能**:ASTreeView 1.3.0 支持节点的拖放操作,...
在Windows Forms应用程序开发中,`TreeView`控件是一个不可或缺的部分,尤其在需要展现层次结构数据时。本篇文章将深入探讨`TreeView`控件在Windows Forms中的应用及其主要功能。 `TreeView`控件在Windows Forms中...
在实际开发中,`TreeView`控件的使用不仅限于与`DataGridView`的结合,还可以与其他控件配合,如`TabControl`,或者通过拖放操作实现文件管理器的功能。`TreeView`控件的灵活性和强大功能使其成为.NET开发中的重要...
在Windows应用程序开发中,TreeView控件是一个非常常用且功能强大的组件。它允许用户以树状结构展示数据,常用于文件系统、目录结构或者层次关系的数据表示。本篇将深入探讨如何使用TreeView控件,以及其在实际应用...
本篇文章将详细讲解如何将三种不同类型的TreeView控件与数据库结合,以实现数据的动态加载、显示和操作。 首先,我们要理解`TreeView`的基本用法。TreeView是一个可视化的控件,它可以展示一个树形结构,每个节点...
在IT领域,treeview控件是一种常见的用户界面元素,它用于以树形结构展示数据,使得用户可以方便地浏览和操作层级关系的数据。本篇将详细探讨dojo库中的treeview控件,以及如何利用它来实现功能完备的树视图。 Dojo...
根据提供的标题、描述、标签及部分内容,我们可以详细探讨如何利用C#与ASP.NET技术实现TreeView控件从数据库中动态生成树形结构。 ### 一、背景介绍 在Web开发中,TreeView 控件是一种非常有用的工具,它可以帮助...
Winform TreeView控件基础 `TreeView`控件允许展示一个可折叠和展开的节点树,每个节点可以包含子节点。通过`TreeNode`类,我们可以创建和操作这些节点。`TreeView`控件的常用属性包括: - `Nodes`: 存储根节点的...
本篇文章将详细介绍如何利用TreeView控件来高效地实现树结构的显示,并提供快速查找树节点的方法。此外,还将探讨一种通用的树结构数据存储方案,以便于更好地管理和操作这些树状数据。 #### 使用TreeView控件实现...