当前位置: 移动技术网 > IT编程>开发语言>.net > 关于C# WinForm_Tree View的一些基本用法(摘抄)

关于C# WinForm_Tree View的一些基本用法(摘抄)

2018年12月07日  | 移动技术网IT编程  | 我要评论

媳妇当车模105季,多春鱼产地,女团bambino

下面是treeview的用法
treeview组件是由多个类来定义的,treeview组件是由命名空
间"system. .forms"中的"treeview"类来定义的,而其中的
节点(即node),是由命名空间"system. .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. .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 ( ) ;
}
}
}

ps:以上仅供用于学习以及参考,摘抄自@无恨星辰 的随笔。

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网