通过键盘方向键控制TreeView节点的移动

摘要:
本文转载:http://dengzebo.blog.163.com/blog/static/18867406201032141932204/ViewCode#region“控制树节点上下左右移动”/////通过Ctrl+键盘移动所选树节点////TreeView控件以编辑//˂par

本文转载:http://dengzebo.blog.163.com/blog/static/18867406201032141932204/

View Code
#region"控制树节点移动,向左右下上"
///<summary>///通过Ctrl+键盘移动选定的树节点
///</summary>///<paramname="TreeView1">要编辑的TreeView控件</param>///<paramname="eKeys">The<seecref="System.Windows.Forms.KeyEventArgs"/>KeyEventArgs为按键事件提供数据</param>publicvoidMoveSelectNode(TreeViewTreeView1,KeyEventArgseKeys)
{
try
{
if(TreeView1.SelectedNode==null)
{
return;
}
try
{
if(eKeys.KeyCode==Keys.Up&&eKeys.Control==true)
{
TreeNodeTN=newTreeNode();
TN=TreeView1.SelectedNode;
TreeNodeTempNode=(TreeNode)TreeView1.SelectedNode.Clone();
if(TreeView1.SelectedNode.PrevNode==null)
{
return;
}
if(TN.Parent==null)
{
TreeView1.Nodes.Insert(TN.Index-1,TempNode);
}
else
{
TN.Parent.Nodes.Insert(TN.Index-1,TempNode);
}
TreeView1.SelectedNode.Remove();
TreeView1.SelectedNode=TempNode;
}
elseif(eKeys.KeyCode==Keys.Down&&eKeys.Control==true)
{
TreeNodeTN=newTreeNode();
TN=TreeView1.SelectedNode;
TreeNodeTempNode=(TreeNode)TreeView1.SelectedNode.Clone();
if(TreeView1.SelectedNode.NextNode==null)
{
return;
}
if(TN.Parent==null)
{
TreeView1.Nodes.Insert(TN.Index+2,TempNode);
}
else
{
TN.Parent.Nodes.Insert(TN.Index+2,TempNode);
}
TreeView1.SelectedNode.Remove();
TreeView1.SelectedNode=TempNode;
}
elseif(eKeys.KeyCode==Keys.Left&&eKeys.Control==true)
{
TreeNodeTN=newTreeNode();
TN=TreeView1.SelectedNode;
TreeNodeTempNode=(TreeNode)TreeView1.SelectedNode.Clone();
if(TreeView1.SelectedNode.Parent==null)
{
return;
}
else
{
if(TreeView1.SelectedNode.Parent.Parent==null)
{
TreeView1.Nodes.Add(TempNode);
}
else
{
TN.Parent.Parent.Nodes.Add(TempNode);
}
}
TN.Remove();
TreeView1.SelectedNode=TempNode;
}
elseif(eKeys.KeyCode==Keys.Right&&eKeys.Control==true)
{
TreeNodeTN=newTreeNode();
TN=TreeView1.SelectedNode;
TreeNodeTempNode=(TreeNode)TreeView1.SelectedNode.Clone();
if(TreeView1.SelectedNode.NextNode==null)
{
return;
}
TN.NextNode.Nodes.Insert(0,TempNode);
TN.Remove();
TreeView1.SelectedNode=TempNode;
}
}
catch
{
}
}
catch
{}
}
#endregion

免责声明:文章转载自《通过键盘方向键控制TreeView节点的移动》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Jenkins环境,构建时报错 ERROR: Error fetching remote repo 'origin'μC/OS-III---I笔记13---中断管理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C# TreeView 建立、遍历树(递归)

刚接触treeview这个功能,恶补了几天,博主总结下实现的功能以备用,希望能帮到需要的亲~~ C#gui程序中建立树状结构、遍历树状结构、树状结构节点选中联动(选中父节点时,自动选中其全部子节点,取消选中的某子节点,取消其相应的所有父节点的选中),读取选中节点信息。 0.最初的父节点建立ParentNode = tv_user.Nodes.Add(OUn...

获取TreeView 树中所选择的值

利用一个递归函数将TreeView中所选择的值 Add到一个List<String> 中 public static void GetTreeViewSelectItems(TreeView tree) { //リスト無効の場合 if (treeValLst == null) { //初始化 treeValLst = new List<s...

TreeView中节点勾选设置

本文转载:http://www.cnblogs.com/luxiaoxun/p/3288003.html 很不错的文章:http://www.cnblogs.com/allen0118/archive/2012/11/28/2793037.html TreeView树中节点勾选要求: 1、不选中一个节点,则其所有的子节点都不被选中。 2、选中一个节点,则其...

wpf treeview 数据绑定 递归绑定节点

1.先上效果 将所有节点加入ComboBox数据源,在ComboBox中选择时下方Treeview显示该节点下的子节点。 1.xaml文件,将以下代码加入界面合适位置 1     <StackPanel> 2 <StackPanel Margin="10"> 3 <La...

(转)C# WinForm开发系列 TreeView

包含异步加载树,带拖动,多选,动画效果等控件(文章及相关代码搜集自网络,仅供参考学习,版权属于原作者! ). 1.我的资源管理器 2.支持Animation效果的树控件 翻译Stu-Smith著Customizable Tree Control with Animation Supportivanx译 For MSPROJECT.CN 简介本文实现一个全定...

C#实现树型结构TreeView节点拖拽的简单功能(转)

本文摘抄博客园里面的牛人吉日嘎啦。http://www.cnblogs.com/jirigala 例子程序运行效果如何下:   当然在节点拖拽时,需要注意几个事情: 1:拖拽时总需要有提示信息比较好,防止误操作后找不到被托摘到哪里去了。 2:父亲节点总不能拖拽到自己的子节点上,那不是死循环或者乱了辈份了不是? 为了让TreeView支持拖拽功能,需要注意...