基本上都有注释了,以后忘记了好从新学习
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication10
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) //展开节点后发生
{
e.Node.ImageIndex = 1; //改变展开节点的图像
e.Node.SelectedImageIndex = 1; //改变展开节点选中时的图像
}
private void treeView1_AfterCollapse(object sender, TreeViewEventArgs e) //在折叠节点都发生
{
e.Node.ImageIndex = 0; //改变展开节点的图像
e.Node.SelectedImageIndex = 0; //改变展开节点选中时的图像
}
private void button1_Click(object sender, EventArgs e)
{
TreeNode newnode = new TreeNode(textBox1.Text, 2, 2);
//使用文本框的内容构造一个treenode对象
treeView1.Nodes.Add(newnode);
//在nodes集合中加入这个新的节点
treeView1.Select();
//选中treeview1;
}
private void button2_Click(object sender, EventArgs e)
{
TreeNode selectednode = treeView1.SelectedNode;
//获取当前选中节点
if (selectednode == null)
{
MessageBox.Show("请在添加子节点之前选中一个节点");
return ;
}
TreeNode newnode = new TreeNode(textBox1.Text, 2, 2);
使用文本框的内容构造一个treenode对象
selectednode.Nodes.Add(newnode); //选中节点的nodes集合中加入这个新的节点
selectednode.ImageIndex = 1; //设置图标
selectednode.SelectedImageIndex = 1;
selectednode.Expand(); //展开节点
treeView1.Select();
}
private void button3_Click(object sender, EventArgs e)
{
TreeNode selectednode = treeView1.SelectedNode;
//获取当前选中节点
if (selectednode == null)
{
MessageBox.Show("请在删除节点之前选中一个节点");
return;
}
TreeNode parentnode = selectednode.Parent;
//获取选取节点的父节点
if (parentnode == null)
{
treeView1.Nodes.Remove(selectednode);
//如果父节点为空,即选取节点是根节点
}
else
{
parentnode.Nodes.Remove(selectednode);
//否则从父节点中的nodes集合中删除
if (parentnode.Nodes.Count == 0) //如果父节点没有子节点了就更改父节点图标
{
parentnode.ImageIndex = 2;
parentnode.SelectedImageIndex = 2;
}
}
treeView1.Select();
}
}
}