TreeView控件用于显示按照树形结构进行组织的数据。该控件中的一个树形图由节点(TreeNode)和连接线组成。节点是TreeView的基本组成单元,一个树的节点又包括文本(Text)和数据(Data)。其中,文本是string类,数据是无定形指针,可以指向一个与节点相联系的数据结构。
1、C#创建一个windows窗体
2、打开主窗体的设计界面,在左侧的工具箱找到TreeView控件,点击拖拽到窗体设计界面上
3、属性修改,其中属性包括:
BorderStyle:确定控件边界风格,包括Fixed3D、FixedSingle和None三种;
ImageIndex:节点的默认图像索引,这里的图像是指存放于ImageList属性中的图像;
ImageList:从中获取节点图像的ImageList控件;
Nodes:控件中的根节点
SelectedImageIndex:选定节点的默认图像索引;
ShowLines:指示是否在同级节点之间以及父节点和子节点之间显示连线;
ShowPlusMinus:指示是否在父节点旁边显示加/减按钮
ShowRootLines:指示是否在根节点之间显示连线
StateImageList:树视图用于表示自定义状态的ImageList控件
CheckBoxes:指示是否在节点旁显示复选框
使用这些属性进行不同的搭配,就可以获得不同的显示风格
对于数据的加入,可以选择Nodes属性,点击左侧的小按钮,在弹出的“TreeNode编辑器”中添加节点数据。首先点击左下角的“添加根”按钮添加一个根节点,在右侧属性窗口修改相关属性,如Text为显示值;其次在选中某一根节点后,点击左下角的“添加子级”按钮添加一个子节点,同样在右侧属性栏修改相关属性
仅仅是把控件添加上之后并不能运行此控件,所以就需要我们在代码窗体去编写响应此控件活动的代码,代码如下:
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
for (int i = 0; i < this.TreeView1.Nodes.Count; i++)
{//跌迭根节点
if (this.TreeView1 .SelectedValue==this.TreeView1 .Nodes [i].Value )
{//如果选中的是根节点,就展开
this.TreeView1.SelectedNode.Expanded = true;
}
else
{//如果选中的不是根节点
for (int j = 0; j < this.TreeView1.SelectedNode.Parent.ChildNodes.Count; j++)
{//就让选中节点的所有同级节点收缩
this.TreeView1.SelectedNode.Parent.ChildNodes[j].CollapseAll();
}
//然后再展开选中的节点及其所有父节点
this.TreeView1.SelectedNode.Parent.Expanded = true;
this.TreeView1.SelectedNode.Expanded = true;
}
}
如果只是像上边代码那样编写的话会出现一个问题,那就是这个菜单的伸缩只能是点击前边的小加号实现,点击问题并没有效果,如果想要解决,方法如下:
tn.SelectAction = TreeNodeSelectAction.Expand; //在控件上加上这个属性
这里需要注意的是,这里的tn指的是节点,即TreeNode ,所以上边的代码也就是treeview.Nodes[index].SelectAction
这个控件还有一些其他的属性,在这里就不做过多的总结了,如果大家感兴趣可以多去了解...