我们将使用visual studio完成实现目录节点的折叠、隐藏、增加和删除。
创建项目
在visual studio中找到 Windows窗体应用 (.NET Framework)双击创建项目。
点击左侧工具箱,找到treeView,把它拖到应用窗体上。如果左侧没有工具箱,可以在上方菜单栏点击视图,就可以找到工具箱了。
点击treeView,在它右上角有一个三角,点击它,再点击“编辑节点”,就可以给目录添加内容了。如何一次性选择多个目标,在treeView属性中找到Checkbox,把false改为true就行了。当然我们肯定不是这样添加内容,而是通过代码来添加内容。
节点的增加和删除
在工具箱中找到button按钮,拖四个button按钮到窗体上。右键button按钮,点击属性,在属性栏中找到Text属性。通过这个属性可以把三个按钮修改按钮名称,并把它们命名为增加、删除、隐藏与展开。
双击增加按钮,进入代码编辑。
将这些代码输入,其中Nodes是控件的根节点,因为本来treeView1控件没有根节点,所以应该先通过Nodes.Add的方法来添加根节点。
删除按钮的操作同上,而代码中try和 catch是用于处理异常的语句,它们构成了一种异常处理机制。在一个 try
语句中,程序执行一段代码,如果发生了异常,则会被捕获,并转到相的 catch
语句中进行处理。try
和 catch
语句用于处理程序运行时可能发生的异常,以保证程序的稳定性和正确性。但是不能一味的删除,还要判断根节点是否存在,当存在子节点时,根节点无法被删除。当删除完时,提示"别删了,再删就没有了"。
节点的展开与折叠
在展开与折叠按钮中,设定一个局部变量x,当x等于0时使节点收缩。反之,就使节点展开
小结
以上思路仅供参考,如有错误,请多多指正。
总体代码
private void button1_Click(object sender, EventArgs e)
{
//控件的根节点Nodes,因为本来treeView1控件没有根节点,所以应该先添加根节点Nodes.Add
TreeNode td = treeView1.SelectedNode;
TreeNode newtd = new TreeNode();
newtd.Text = "新增";
td.Nodes.Add(newtd);
}
private void button2_Click(object sender, EventArgs e)
{
try
{
if(treeView1.SelectedNode!=null)
if (treeView1.SelectedNode.Nodes.Count > 0)
{
MessageBox.Show("你还有子节点,请删除子节点");
}
else
{
//删除节点Nodes,使用Remove
treeView1.Nodes.Remove(treeView1.SelectedNode);
}
}catch(Exception ex){
MessageBox.Show("别删了,再删就没有了");
}
}
int i = 0;
private void button3_Click(object sender, EventArgs e)
{
if (i==0)
{
//CollapseAll()收缩节点
this.treeView1.CollapseAll();//折叠
i = 1;
}
else
{
//ExpandAll()展开节点
this.treeView1.ExpandAll();//展开
i = 0;
}
}