今天练习了一个动态添加更新树的例子,具体实现如下:新建Form应用程序,添加treeview,textbox,以及四个button控件:
![](https://www.cnblogs.com/images/cnblogs_com/support/1.jpg)
具体代码如下:
private void button1_Click(object sender, EventArgs e)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
TreeNode newNode = new TreeNode(this.textBox1.Text,0,0);
this.treeView1.Nodes.Add(newNode);
this.treeView1.Select();
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
private void button2_Click(object sender, EventArgs e)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
TreeNode selectedNode = this.treeView1.SelectedNode;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(selectedNode == null)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
MessageBox.Show(this,"添加子结点之前必须先选中一个根节点。","提示信息",MessageBoxButtons.OK,MessageBoxIcon.Warning);
return;
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
TreeNode newNode = new TreeNode(this.textBox1.Text,1,1);
selectedNode.Nodes.Add(newNode);
selectedNode.SelectedImageIndex = 1;
selectedNode.Expand();
this.treeView1.Select();
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
private void button3_Click(object sender, EventArgs e)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
TreeNode selectedNode = this.treeView1.SelectedNode;
if(selectedNode == null)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
MessageBox.Show(this,"删除结点之前必须选中一个结点.","提示信息",MessageBoxButtons.OK,MessageBoxIcon.Warning);
return;
}
TreeNode parentNode = selectedNode.Parent;
if (parentNode == null)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.treeView1.Nodes.Remove(selectedNode);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
}
else
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
parentNode.Nodes.Remove(selectedNode);
if(parentNode.Nodes.Count == 0)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
parentNode.ImageIndex = 1;
parentNode.SelectedImageIndex = 1;
}
}
this.treeView1.Select();
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
int str = treeView1.SelectedImageIndex;
//listBox1.Items.Add(str.ToString());
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
private void button4_Click(object sender, EventArgs e)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
TreeNode selectNode = this.treeView1.SelectedNode;
if(selectNode != null)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.treeView1.SelectedNode.Text = textBox1.Text;
}
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
}
}