winform里的treeview

本文介绍了一个使用TreeView组件的应用实例,展示了如何通过代码实现节点的增删、展开与折叠等功能。包括了添加子节点、父节点、右键菜单操作及节点选择等关键功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
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 ( ) ;
}
}
} 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值