2009-08-12 20:10 1494人阅读 评论(2) 收藏 举报

C#中,通过单击上移,下移按钮移动树节点中的节点顺序的实现方法:

  1. public Form1()
  2. {
  3. InitializeComponent();
  4. }
  5. TreeNode preNode, nextNode, currentNode;
  6. int g_tag;
  7. string g_text;
  8. private void Form1_Load(object sender, EventArgs e)
  9. {
  10. TreeNode tn = new TreeNode();
  11. tn.Nodes.Add("北京");
  12. tn.Tag = 1;
  13. tn.Nodes.Add("湖北");
  14. tn.Tag = 2;
  15. tn.Nodes.Add("上海");
  16. tn.Tag = 3;
  17. tn.Nodes.Add("天津");
  18. tn.Tag = 4;
  19. treeView1.Nodes.Add(tn);
  20. }
  21. //上移
  22. private void button2_Click(object sender, EventArgs e)
  23. {
  24. currentNode = treeView1.SelectedNode;
  25. if (currentNode == null)
  26. {
  27. return;
  28. }
  29. else
  30. {
  31. preNode = currentNode.PrevNode;
  32. if (preNode == null)
  33. {
  34. return;
  35. }
  36. else
  37. {
  38. g_text= preNode.Text;
  39. g_tag=Convert.ToInt32( preNode.Tag);
  40. preNode.Tag= currentNode.Tag;
  41. preNode.Text = currentNode.Text;
  42. currentNode.Tag = g_tag;
  43. currentNode.Text = g_text;
  44. }
  45. }
  46. }
  47. //下移
  48. private void button3_Click(object sender, EventArgs e)
  49. {
  50. currentNode = treeView1.SelectedNode;
  51. if (currentNode == null)
  52. {
  53. return;
  54. }
  55. else
  56. {
  57. preNode = currentNode.NextNode;
  58. if (preNode == null)
  59. {
  60. return;
  61. }
  62. else
  63. {
  64. g_text = preNode.Text;
  65. g_tag = Convert.ToInt32(preNode.Tag);
  66. preNode.Tag = currentNode.Tag;
  67. preNode.Text = currentNode.Text;
  68. currentNode.Tag = g_tag;
  69. currentNode.Text = g_text;
  70. }
  71. }
  72. }

在窗体中拖1个treeView控件和两个button,按照上面思路实现就可以了。

C#上移,下移TreeView中的树节点顺序的更多相关文章

  1. AppBox中main树节点单击事件JS(还有叶子的节点的页面链接)

    AppBox中main.aspx.csif (menu.IsTreeLeaf) {                        node.Leaf = true;                   ...

  2. TreeView中右击直接获取节点的方法

    在TreeView中无法直接右击得到一个节点,因为当你选中其中一个右击时(不能是第一个)他会默认跳到第一个. 有时我们要想直接右击得到选中的节点,又时我们又想选中直接右击跳出一个快捷菜单怎么办了! 在 ...

  3. 修复jquery.treeview的增加子节点的方法的bug

    1.修复理由 在一个android项目中用到了treeview控件(本来自己通过android的原生api实现了一个http://www.cnblogs.com/Mr-Nobody/p/3527688 ...

  4. TreeView 树节点的处理

    TreeView 树节点的处理 using System; using System.Collections.Generic; using System.ComponentModel; using S ...

  5. 问题-在TreeView使用时,发现选中的树节点会闪烁或消失

    问题:在工程中选中一个树节点,鼠标焦点在树上,做某种操作时发现选中的点会消失?原因:如果只是BeginUpdate后,没有调用EndUpdate,树会全空.应该是BeginUpdate方法会刷新树,但 ...

  6. table中实现数据上移下移效果

    html 由于vue+Element项目中的table,没有开放的上移下移的api,但是能对数据操作,故思路为数组中的一条数据,再重新添加一条数据,办法有点笨,但是好歹也是实现了,望有好的办法的,请留 ...

  7. ext 树节点操作

    ext 树节点操作 tree :树    node:节点 1.全部展开 tree.expandAll(); 2.全部收缩 tree.collapseAll(); 3.得到父节点 node.parent ...

  8. WPF:使用Json.NET在TreeView中树形显示JSON数据

    原文 WPF:使用Json.NET在TreeView中树形显示JSON数据 据 读者可以参考这个开源的可以树形显示XML和JSON的工具: Mgen Object 603:XML/JSON树形显示小工 ...

  9. 向treeview中加载数据

    1.获取树节点的值,用事件AfterSelect加载(id值的获取,用name来获取) 2.双击treeview控件得到 private void treeView1_AfterSelect(obje ...

随机推荐

  1. React Native常用组件在Android和IOS上的不同

    React Native常用组件在Android和IOS上的不同 一.Text组件在两个平台上的不同表现 1.1 height与fontSize 1.1.1只指定font,不指定height 在这种情 ...

  2. 【译】x86程序员手册03 - 2.1内存组织和分段

    2.1 Memory Organization and Segmentation 内存组织和分段 The physical memory of an 80386 system is organized ...

  3. vm装xp安装成功后进入不了系统

    1.如果是用虚拟光驱,你肯定步骤是先新建的虚拟机,再安装的虚拟光驱,所以会出现这样的问题.(请先安装虚拟光驱,再新建虚拟机,再用虚拟光驱加载镜像文件,问题解决)2.如果是直接使用的镜像,那么在GHOS ...

  4. DOM对象之window

    window的属性 top:返回当前窗口的最顶层的先辈窗口 document:返回HTML文档对象 location:当前窗口的地址 self:返回对自身窗口的引用 parent:返回父窗口 如何引用 ...

  5. 关于Python中的classmethod

    Python 中的 classmethod classmethod: 作用是直接将自己的类对象,传给类方法. 一.classmethod 1)不用classmethod的时候 你的代码可能是这样写的, ...

  6. 注解是建立在class文件基础上的东西,同C语言的宏有异曲同工的效果

    注解是建立在class文件基础上的东西,同C语言的宏有异曲同工的效果 https://www.cnblogs.com/deman/p/5519901.html @是java注解,即annotation ...

  7. 黑苹果开启retina,大分辨率的方法

    首先,管理分辨率RDM的软件这里下载: http://pan.baidu.com/s/1bpjL07P 在终端输入: curl -o ~/enable-HiDPI.sh https://raw.git ...

  8. Python学习【第5篇】:Python之函数(自定义函数,内置函数,装饰器,迭代器,生成器、模块)

    一.为什么要使用函数? 1.避免代码重用 2.提高代码的可读性 二.函数的定义与调用 1. def  函数名(参数1,参数2): ''' 函数注释''' print('函数体') return 返回值 ...

  9. hbase + phoenix 单机版安装

    1. 环境: centos 6.5 jdk 1.8.0                                                 http://www.oracle.com/te ...

  10. MySql数据库优化可以从哪几个方面进行?

    1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽 ...