C#编写操作TreeView组件剖析

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

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

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

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

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

【编辑推荐】

  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:17:04

C#引用类型

2009-09-01 11:04:59

C#调用扩展方法

2009-09-11 11:09:36

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-08-31 17:26:32

C#异常处理

2009-08-27 17:51:34

C#匿名方法

2009-08-28 10:44:46

C#字符数组转换

2009-09-03 16:58:49

C#内存管理

2009-09-02 13:36:58

C#实现多个接口
点赞
收藏

51CTO技术栈公众号