`
isiqi
  • 浏览: 16488547 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

C#中TreeView组件使用方法初步

阅读更多

C#中TreeView组件使用方法初步

Yesky 马金虎
 

  TreeView组件是由多个类来定义的,TreeView组件是由命名空间"System.Windows.Forms"中的"TreeView"类来定义的,而其中的节点(即Node),是由命名空间"System.Windows.Forms"中的"TreeNode"来定义的。所以当在程序中创建一个TreeView对象,其实只是创建了一个可以放置节点的"容器"。而在这个容器中加入一个节点,其实就是加入了从"TreeNode"类中创建的一个节点对象;同样删除一个节点,也就是删除一个"TreeNode"节点对象。

  一. 本文中介绍的程序设计及运行环境

   (1).微软视窗2000 服务器版

   (2)..net Framework SDK 正式版

  二. C#操作TreeView组件中的一些常用方法以及具体实现:

  TreeView组件虽然是一个操作起来比较麻烦的组件,但归根到底,可以总结为三种基本操作:加入子节点、加入兄弟节点和删除节点。掌握了这三种常用操作,对于在编程中灵活运用TreeView组件是十分必要的。下面就分别来加以介绍。

  (1).加入子节点:

  所谓子节点,就是处于选定节点的下一级节点。加入子节点的具体过程是:首先要在TreeView组件中定位要加入的子节点的位置,然后创建一个节点对象,然后利用TreeVeiw类中对节点的加入方法(即:Add ( )方法),加入此节点对象。下面就是在treeView1组件中加入一个子节点的具体代码:

 
//首先判断是否选定组件中的位置
if ( treeView1.SelectedNode == null )
{
MessageBox.Show ( "请选择一个节点" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
}
else
{
//创建一个节点对象,并初始化
TreeNode tmp ;
tmp = new TreeNode ( "节点名称" ) ;
//在TreeView组件中加入子节点
treeView1.SelectedNode.Nodes.Add ( tmp ) ;
treeView1.SelectedNode = tmp ;
treeView1.ExpandAll ( ) ;
}

  (2).加入兄弟节点:

  所谓兄弟节点,就是在选定的节点的平级的节点。加入兄弟节点的方法和加入子节点的方法基本一致,只是在最后的实现方法上有着略微的区别。加入兄弟节点的具体步骤,首先也是要确定要加入的兄弟节点所处的位置,接着定义一个节点对象,最后调用TreeView类中对兄弟节点加入的方法,加入此节点对象。加入兄弟节点和加入子节点的最大区别就在于这最后一步。希望读者能够注意。下面是在TreeView组件加入一个兄弟节点的具体代码:

 
//首先判断是否选定组件中节点的位置
if ( treeView1.SelectedNode == null )
{
MessageBox.Show ( "请选择一个节点" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
}
else
{
//创建一个节点对象,并初始化
TreeNode tmp ;
tmp = new TreeNode ( textBox1.Text ) ;
//在TreeView组件中加入兄弟节点
treeView1.SelectedNode.Parent.Nodes.Add ( tmp ) ;
treeView1.ExpandAll ( ) ;
}

  (3).删除节点:

  删除节点就是删除TreeView组件中选定的节点,删除节点可以是子节点,也可以是兄弟节点,但无论节点的性质如何,必须保证要删除的节点没有下一级节点,否则必须先删除此节点中的所有下一级节点,然后再删除此节点。删除节点比起上面的二个操作要显得略微简单,具体方法是:首先判断要删除的节点是否存在下一级节点,如果不存在,就调用TreeView类中的Remove ( )方法,就可以删除节点了。下面是删除TreeView组件中节点的具体代码:

 
//判断选定的节点是否存在下一级节点
if ( treeView1.SelectedNode.Nodes.Count == 0 )
//删除节点
treeView1.SelectedNode.Remove ( ) ;
else
MessageBox.Show ( "请先删除此节点中的子节点!" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;

  (4).TreeView组件的一些其他常用操作:

  其他的一些常用操作比起上面的三种操作,在具体实现上要显得简单许多。这些常用操作无非是,展开所有节点,展开指定的节点、和折叠所有节点。下面就来具体介绍一下:

  < I > .展开所有节点:

  要展开TreeView组件中的所有节点,首先就要把选定的节点指针定位在TreeView组件的根节点上,然后调用选定组件的ExpandAll方法就可以了,下面是具体代码:

//定位根节点
treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;
//展开组件中的所有节点
treeView1.SelectedNode.ExpandAll ( ) ;

  < II > .展开选定节点的下一级节点:

  由于只是展开下一级节点,所以就没有必要用ExpandAll ( )方法了。展开下一级节点只需要调用Expand ( )方法就可以了,下面是具体的实现代码:

treeView1.SelectedNode.Expand ( ) ;

  < III > .折叠所有节点:

  折叠所有节点和展开所有节点是一组互操作,具体实现的思路也大致相同,折叠所有节点也是首先要把选定的节点指针定位在根节点上,然后调用选定组件的Collapse ( )就可以了,下面是具体的实现代码:

 
//定位根节点
treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;
//折叠组件中所有节点
treeView1.SelectedNode.Collapse ( ) ;

  至此已经把在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 )
{
//定位根节点
treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;
//展开组件中的所有节点
treeView1.SelectedNode.ExpandAll ( ) ;
}
private void button3_Click ( object sender , System.EventArgs e )
{
//定位根节点
treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;
//折叠组件中所有节点
treeView1.SelectedNode.Collapse ( ) ;
}
}
}


  在成功编译TreeView.cs后,即可运行程序。

  四. 总结:

  TreeView组件是一个既令程序员头痛,又令程序员难以割舍的组件。这是因为TreeView组件使用非常灵活,显示内容有层次,并且"容量"相对又比较大。但同时在实际的编程比起其他组件又相对麻烦。掌握了本文介绍的这些用C#操作TreeView组件的基本方法后,我想对于在使用TreeView组件中的一般的问题,应该都能够克服了吧。
分享到:
评论

相关推荐

    C#中TreeView组件使用方法初步

    【C#中TreeView组件使用详解】 TreeView组件是Windows Forms应用程序中常见的一种控件,用于展示层次结构的数据。它由`System.Windows.Forms`命名空间中的`TreeView`类定义,该类提供了一个容器,可以用来添加、...

    c#中treeview的使用方法

    首先,要在C#程序中使用`TreeView`控件,你需要在设计界面或代码中创建它。在Visual Studio .NET环境中,可以直接从工具箱中拖放`TreeView`控件到窗体上,然后设置其`ID`属性以便在代码中引用。例如,可以设置`ID`为...

    C#TreeView的使用实例

    C#TreeView的使用实例,新手可以下载来看看

    C#中TreeView节点的自定义绘制方法

    本篇文章将深入探讨如何在C#中实现`TreeView`节点的自定义绘制。 首先,要实现自定义绘制,我们需要重写`TreeView`控件的`DrawNode`事件。这个事件在`TreeView`控件绘制每个节点时触发,提供了一个机会让我们自定义...

    reeview控件使用

    在IT行业中,控件是构建用户界面的基本元素,它们提供了与用户交互的途径。"reeview控件"可能指的是一个特定的控件...如果有机会,一定要详细研究这些文件,以便更好地掌握在C#中使用TreeView控件的技巧和最佳实践。

    C# 重写treeView控件为组件实现全选反选

    C# 重写DEV10.0的treeView控件为组件实现全选反选和鼠标设置,组建可以引用直接用,已经开发源代码也可以根据自己需求再加功能,实现开发者快速开发,只要调用一个方法就可以。注意要安装DEV10或引用DEV控件。我把...

    Treeview组件的使用方法.非常适合初学者.内附自制treeview组件代码

    这篇教程适合初学者,将详细介绍如何在C#中使用TreeView组件,包括添加子节点、添加兄弟节点和删除节点。 1. TreeView组件基础 TreeView组件由`System.Windows.Forms`命名空间中的`TreeView`类定义,它是一个容器,...

    C#编写TreeView组件的例子

    在.NET Framework中,TreeView组件是一种常用的用户界面控件,它用于显示层次结构的数据,例如文件系统、数据库结构或自定义...通过深入理解并实践上述知识点,你将能够熟练地在C#应用程序中使用和定制TreeView组件。

    C# winform treeView控件的使用绑定数据库

    在C# WinForm开发中,`TreeView`控件是一个常用且功能强大的组件,它用于以树形结构展示数据。在本教程中,我们将探讨如何利用`TreeView`控件与数据库进行绑定,以便用户能够直观地浏览和操作层次化的数据。 首先,...

    C# winform TreeView递归文件夹

    在C# WinForm应用开发中,`TreeView`控件常被用来展示文件系统或自定义层次结构的数据。本文将深入探讨如何使用C#实现`TreeView`控件来递归加载文件夹及其子文件夹的内容。 首先,理解`TreeView`控件。`TreeView`...

    c#中treeview控件节点图代码

    下面,我们将深入探讨这一知识点,包括`TreeView`控件的基本概念、如何在C#中使用它,以及如何通过代码添加节点。 ### TreeView控件概述 `TreeView`控件是Windows Forms中的一个重要组成部分,它提供了一种直观的...

    C# List绑定treeView

    在本篇文章中,我们将深入探讨如何使用C#中的List集合动态地绑定到TreeView控件上。这种方法在构建具有层级结构的应用程序时非常有用,尤其是在处理组织结构、文件系统或者任何类型的树状数据时。 ### 一、理解...

    C# TreeView重绘边框

    本文将深入探讨如何在C#中实现`TreeView`控件的边框重绘,以创建独一无二的视觉效果。 首先,了解`TreeView`的基本属性和方法。`TreeView`控件具有`Nodes`集合,用于添加、删除或操作节点;`DrawMode`属性可以设置...

    C#关于treeview序列化的一个应用程序

    在C#中,我们可以使用.NET Framework提供的System.Runtime.Serialization命名空间中的类来实现序列化。反序列化则是相反的过程,即从数据流恢复对象的状态。 2. **TreeView控件**: TreeView控件是Windows Forms中...

    C#中treeview控件的使用方法

    在.NET中TreeView大体有 3种实现方式、设置成静态即直接在Control控件中编辑节点设置属性即可这种方式 可以最简单快速实现个TreeView但是不灵活只适合于数据是成不变般没有人使用这种方式本文不做重点介绍不 推荐...

    C#WinForm treeview经典用法和排序

    在C# WinForm开发中,TreeView控件是一个非常常见的组件,用于展示层次化的数据结构,如文件系统、组织结构或数据库记录。这个控件通过节点(TreeNode)来表示层级关系,用户可以方便地展开、折叠以及导航。在这个...

    C#中使用treeview显示目录和文件的demo

    本示例“C#中使用treeview显示目录和文件的demo”教你如何利用TreeView控件来实时地展示D盘下名为“treetest”的目录及其包含的子目录和文件。下面我们将详细探讨实现这一功能的关键知识点。 首先,你需要了解...

    c# 中TreeView的应用实例源代码

    下面我们将深入探讨`TreeView`在C#中的应用实例及其相关知识点。 ### 1. 创建和添加节点 创建`TreeView`控件非常简单,只需在设计视图中拖放或在代码中实例化即可。添加节点通常通过`TreeNode`类完成,例如: ```...

    C# Treeview 导出Excel

    在C#编程中,`TreeView`控件常用于展示层级结构的数据,如文件系统、组织结构等。将`TreeView`中的数据导出到Excel是一种常见的需求,方便用户进行数据分析和处理。下面我们将深入探讨如何实现这个功能。 首先,...

    C#实现treeview节点三种选择状态

    本文将详细介绍如何在C#中实现TreeView节点的三种选择状态:全选、未选和半选。 首先,我们需要理解TreeView控件的基本操作。每个TreeNode对象代表树中的一个节点,它有子节点(Child Nodes)和一个父节点(Parent ...

Global site tag (gtag.js) - Google Analytics