三. C#编写的一个完整操作TreeView组件的例子
下面是C#编写一个的关于TreeView组件的例子在这个例子中结合以上介绍的常用方法和一般方法基本覆盖来TreeView组件的一些最常用的操作譬如可以灵活的程序中的TreeView组件中进行加入子节点兄弟节点删除节点折叠展开等操作其中前三种基本操作是通过程序中弹出菜单中的功能来实现的后面操作是通过程序中的按钮来实现的下面是此程序的代码节略(TreeViewcs)
using System ;
using SystemDrawing ;
using SystemCollections ;
using SystemComponentModel ;
using SystemWindowsForms ;
using SystemData ;
namespace 全面掌握TreeView组件的使用方法
{
/// Form 的摘要说明
public class Form : Form
{
private TreeView treeView ;
private Button button ;
private Button button ;
private Button button ;
private MenuItem menuItem ;
private MenuItem menuItem ;
private MenuItem menuItem ;
private ContextMenu contextMenu ;
private TextBox textBox ;
private Label label ;
/// 必需的设计器变量
private SystemComponentModelContainer components = null ;
public Form ( )
{
//初始化窗体中的组件
InitializeComponent ( ) ;
}
/// 清理所有正在使用的资源
protected override void Dispose ( bool disposing )
{
if ( disposing )
{
if ( components != null )
{
componentsDispose ( ) ;
}
}
baseDispose ( disposing ) ;
}
private void InitializeComponent ( )
{
//初始化代码(略)
}
[ STAThread ]
static void Main ( )
{
ApplicationRun ( new Form ( ) ) ;
}
private void AddChildNode ( )
{
//首先判断是否选定组件中的位置
if ( treeViewSelectedNode == null )
{
MessageBoxShow ( 请选择一个节点 提示信息 MessageBoxButtonsOK MessageBoxIconInformation ) ;
}
else
{
if ( textBoxText != )
{
//创建一个节点对象并初始化
TreeNode tmp ;
tmp = new TreeNode ( textBoxText ) ;
//在TreeView组件中加入子节点
treeViewSelectedNodeNodesAdd ( tmp ) ;
treeViewSelectedNode = tmp ;
treeViewExpandAll ( ) ;
}
else
{
MessageBoxShow ( TextBox组件必须填入节点名称! 提示信息 MessageBoxButtonsOK MessageBoxIconInformation ) ;
return ;
}
}
}
private void AddParent ( )
{
//首先判断是否选定组件中节点的位置
if ( treeViewSelectedNode == null )
{
MessageBoxShow ( 请选择一个节点 提示信息 MessageBoxButtonsOK MessageBoxIconInformation ) ;
}
else
{
if ( textBoxText != )
{
//创建一个节点对象并初始化
TreeNode tmp ;
tmp = new TreeNode ( textBoxText ) ;
//在TreeView组件中加入兄弟节点
treeViewSelectedNodeParentNodesAdd ( tmp ) ;
treeViewExpandAll ( ) ;
}
else
{
MessageBoxShow ( TextBox组件必须填入节点名称! 提示信息 MessageBoxButtonsOK MessageBoxIconInformation ) ;
return ;
}
}
TreeNode tnode = new TreeNode ( textBoxText ) ;
}
private void treeView_MouseDown ( object sender MouseEventArgs e )
{
if ( eButton == MouseButtonsRight )
contextMenuShow ( this new Point ( eX eY ) ) ;
}
private void button_Click ( object sender SystemEventArgs e )
{
treeViewSelectedNodeExpand ( ) ;
}
private void menuItem_Click ( object sender SystemEventArgs e )
{
AddChildNode ( ) ;
}
private void menuItem_Click ( object sender SystemEventArgs e )
{
AddParent ( ) ;
}
private void menuItem_Click ( object sender SystemEventArgs e )
{
//判断选定的节点是否存在下一级节点
if ( treeViewSelectedNodeNodesCount == )
//删除节点
treeViewSelectedNodeRemove ( ) ;
else
MessageBoxShow ( 请先删除此节点中的子节点! 提示信息 MessageBoxButtonsOK MessageBoxIconInformation ) ;
}
private void button_Click ( object sender SystemEventArgs e )
{
//定位根节点
treeViewSelectedNode = treeViewNodes [ ] ;
//展开组件中的所有节点
treeViewSelectedNodeExpandAll ( ) ;
}
private void button_Click ( object sender SystemEventArgs e )
{
//定位根节点
treeViewSelectedNode = treeViewNodes [ ] ;
//折叠组件中所有节点
treeViewSelectedNodeCollapse ( ) ;
}
}
}
在成功编译TreeViewcs后运行的程序界面如下
图C#编写的操作TreeView组件的程序运行界面
四. 总结
TreeView组件是一个既令程序员头痛又令程序员难以割捨的组件这是因为TreeView组件使用非常灵活显示内容有层次并且容量相对又比较大但同时在实际的编程比起其他组件又相对麻烦掌握了本文介绍的这些用C#操作TreeView组件的基本方法后我想对于在使用TreeView组件中的一般的问题应该都能够克服了吧