C#编写操作TreeView组件剖析

开发 后端
这里介绍C#编写操作TreeView组件的例子,在这个例子中,结合以上介绍的常用方法和一般方法,基本覆盖来TreeView组件的一些最常用的操作。

C#语言有很多值得学习的地方,这里我们主要介绍C#编写操作TreeView组件,包括介绍加入子节点、兄弟节点、删除节点、折叠、展开等操作等方面。

C#编写操作TreeView组件的例子:

下面是C#编写操作TreeView组件的例子,在这个例子中,结合以上介绍的常用方法和一般方法,基本覆盖来TreeView组件的一些最常用的操作。譬如可以灵活的程序中的TreeView组件中,进行加入子节点、兄弟节点、删除节点、折叠、展开等操作。其中前三种基本操作是通过程序中弹出菜单中的功能来实现的,后面操作是通过程序中的按钮来实现的。下面是此程序的代码节略(TreeView.cs):

  1. using System ;  
  2. using System.Drawing ;  
  3. using System.Collections ;  
  4. using System.ComponentModel ;  
  5. using System.Windows.Forms ;  
  6. using System.Data ;  
  7. namespace 全面掌握TreeView组件的使用方法  
  8. {  
  9. /// Form1 的摘要说明。  
  10. public class Form1 : Form  
  11. {  
  12. private TreeView treeView1 ;  
  13. private Button button1 ;  
  14. private Button button2 ;  
  15. private Button button3 ;  
  16. private MenuItem menuItem2 ;  
  17. private MenuItem menuItem3 ;  
  18. private MenuItem menuItem4 ;  
  19. private ContextMenu contextMenu1 ;  
  20. private TextBox textBox1 ;  
  21. private Label label1 ;  
  22. /// 必需的设计器变量。  
  23. private System.ComponentModel.Container components = null ;  
  24. public Form1 ( )  
  25. {  
  26. //初始化窗体中的组件  
  27. InitializeComponent ( ) ;  
  28. }  
  29. /// 清理所有正在使用的资源。  
  30. protected override void Dispose ( bool disposing )  
  31. {  
  32. if ( disposing )  
  33. {  
  34. if ( components != null )  
  35. {  
  36. components.Dispose ( ) ;  
  37. }  
  38. }  
  39. base.Dispose ( disposing ) ;  
  40. }  
  41. private void InitializeComponent ( )  
  42. {  
  43.    //初始化代码(略)  
  44. }  
  45. [ STAThread ]  
  46. static void Main ( )  
  47. {  
  48. Application.Run ( new Form1 ( ) ) ;  
  49. }  
  50. private void AddChildNode ( )  
  51. {  
  52. //首先判断是否选定组件中的位置  
  53. if ( treeView1.SelectedNode == null )  
  54. {  
  55. MessageBox.Show ( "请选择一个节点" , "提示信息" , 
    MessageBoxButtons.OK , MessageBoxIcon.Information ) ;  
  56. }  
  57. else  
  58. {  
  59. if ( textBox1.Text != "" )  
  60. {  
  61. //创建一个节点对象,并初始化  
  62. TreeNode tmp ;  
  63. tmp = new TreeNode ( textBox1.Text ) ;  
  64. //在TreeView组件中加入子节点  
  65. treeView1.SelectedNode.Nodes.Add ( tmp ) ;  
  66. treeView1.SelectedNode = tmp ;  
  67. treeView1.ExpandAll ( ) ;  
  68. }  
  69. else  
  70. {  
  71. MessageBox.Show ( "TextBox组件必须填入节点名称!" , "提示信息" , 
    MessageBoxButtons.OK , MessageBoxIcon.Information ) ;  
  72. return ;  
  73. }  
  74. }  
  75. }  
  76. private void AddParent ( )  
  77. {  
  78. //首先判断是否选定组件中节点的位置  
  79. if ( treeView1.SelectedNode == null )  
  80. {  
  81. MessageBox.Show ( "请选择一个节点" , "提示信息" , 
    MessageBoxButtons.OK , MessageBoxIcon.Information ) ;  
  82. }  
  83. else  
  84. {  
  85. if ( textBox1.Text != "" )  
  86. {  
  87. //创建一个节点对象,并初始化  
  88. TreeNode tmp ;  
  89. tmp = new TreeNode ( textBox1.Text ) ;  
  90. //在TreeView组件中加入兄弟节点  
  91. treeView1.SelectedNode.Parent.Nodes.Add ( tmp ) ;  
  92. treeView1.ExpandAll ( ) ;  
  93. }  
  94. else  
  95. {  
  96. MessageBox.Show ( "TextBox组件必须填入节点名称!" , "提示信息" , 
    MessageBoxButtons.OK , MessageBoxIcon.Information ) ;  
  97. return ;  
  98. }  
  99. }  
  100. TreeNode tnode = new TreeNode ( textBox1.Text ) ;  
  101. }  
  102. private void treeView1_MouseDown ( object sender , MouseEventArgs e )  
  103. {  
  104. if ( e.Button == MouseButtons.Right )  
  105. contextMenu1.Show ( this , new Point ( e.X , e.Y ) ) ;  
  106. }  
  107. private void button1_Click ( object sender , System.EventArgs e )  
  108. {  
  109. treeView1.SelectedNode.Expand ( ) ;  
  110. }  
  111. private void menuItem2_Click ( object sender , System.EventArgs e )  
  112. {  
  113. AddChildNode ( ) ;  
  114. }  
  115. private void menuItem3_Click ( object sender , System.EventArgs e )  
  116. {  
  117. AddParent ( ) ;  
  118. }  
  119. private void menuItem4_Click ( object sender , System.EventArgs e )  
  120. {  
  121. //判断选定的节点是否存在下一级节点  
  122. if ( treeView1.SelectedNode.Nodes.Count == 0 )  
  123. //删除节点  
  124. treeView1.SelectedNode.Remove ( ) ;  
  125. else  
  126. MessageBox.Show ( "请先删除此节点中的子节点!" , "提示信息" , 
    MessageBoxButtons.OK , MessageBoxIcon.Information ) ;  
  127. }  
  128. private void button2_Click ( object sender , System.EventArgs e )  
  129. {  
  130. //定位根节点  
  131. treeView1treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;  
  132. //展开组件中的所有节点  
  133. treeView1.SelectedNode.ExpandAll ( ) ;  
  134. }  
  135. private void button3_Click ( object sender , System.EventArgs e )  
  136. {  
  137. //定位根节点  
  138. treeView1treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;  
  139. //折叠组件中所有节点  
  140. treeView1.SelectedNode.Collapse ( ) ;  
  141. }  
  142. }  
  143. }  

【编辑推荐】

  1. C#窗体里调用浅谈
  2. C#调用ListEmployee命令
  3. C# CreateEmployeeDefinition()函数
  4. C#实现断点续传详细剖析
  5. C# Employee对象浅谈
责任编辑:佚名 来源: 博客园
相关推荐

2009-08-31 15:34:45

常用操作C# TreeView

2009-08-31 15:27:33

C# TreeView

2009-09-18 10:00:17

C#数组操作

2009-09-08 16:51:50

C#鼠标拖动

2009-09-07 14:29:52

C# ServiceC

2009-08-27 17:14:36

C# Socket

2024-04-25 08:24:51

C#系统操作日志

2009-09-01 16:29:03

QuickSort C

2009-09-24 14:59:38

C#编写COM组件

2009-09-11 11:09:36

C#引用类型

2009-09-01 11:04:59

C#调用扩展方法

2009-09-11 11:17:04

C#引用类型

2009-08-27 16:29:18

C#动态编译

2009-09-02 18:14:33

C# WebClien

2009-08-28 16:31:21

C# treeview

2009-09-03 16:58:49

C#内存管理

2009-08-31 17:26:32

C#异常处理

2009-08-27 17:51:34

C#匿名方法

2009-08-28 10:44:46

C#字符数组转换

2009-08-18 15:31:07

C# 操作Excel
点赞
收藏

51CTO技术栈公众号