当在同级节点之间或者树系欸但之间有线存在,该值为True,否则为false。默认值为True。
ShowPlusminus属性。该属性表示是否在父节点旁边显示加减号。
例:设置在treeView1控件中的父级节点旁边显示加减号:this.treeView1.ShowPlusminus=true;
CollapseAll()方法
此方法折叠所有树节点。当树系欸但折叠时,只显示父节点。
ExpandAll()方法
此方法展开所有树节点,包括子节点。
GetNodeCount()方法
此方法用于获取TreeView控件中的节点总数。
AfterCheck事件。
该事件在选中显示在树节点旁边的复选框时发生。
语法:public event TreeViewEventHandler AfterCheck
AfterCollapse事件
该事件在树节点展开时发生。语法:
public event TreeViewEventHadler AfterCollapse
AfterExpand事件
该事件在树节点展开时发生。
语法:public event TreeViewEventHandler AfterExpand
AfterLabelEdit事件
该事件在标记树节点标签文本后发生。
语法:public event TreeViewEventHandler AfterLabelEdit
AfterSelect事件。
该事件在选中树节点后发生。
语法:public event TreeViewEventHandler AfterSelect
BeforeCheck事件。
该事件在中选复选框前发生。
public event TreeViewEventHandler BeforeCheck
BeforeCollapse事件。
该事件在树节点折叠前发生。
语法:public event TreeViewEventHandler BeforeCollapse
BeforeExpand事件
该节点在树节点展开前发生。
语法:public event TreeViewEventHandler BeforeExpand
BeforeLabelEdit事件
该事件在编辑树节点标签前发生。
语法:public event TreeViewEventHandler BeforeLabelEdit
BeforeSelect事件
该事件在选定树节点前发生。
语法:public event TreeViewEventHandler BeforeSelect
Click事件
该事件在单击控件时发生。
语法:public event EventHandler Click。
垂直滚动条出来的时候让它显示在最上面
实现:treeView1.TopMode=treeView1.Node[0];
让第一个可见的节点时树里面的第一个节点,滚动条就会在上面了。
设置Node的样式
Node.ForeColor=System.Drawing.Color.Red;
Node.NodeFont=new System.Drawing.Font(“宋体”,9F,System.Drawing.FontStyle.Strikeout,System.Drawing.GraphicsUnit.Point,((byte)(134)));
获取鼠标选中的节点。
TreeView,当用鼠标右键单击或者双击节点时,SelectedNode并不会指向右击的节点;需要在NodeMouseClick和NodeMouseDoubleClick中操作;
private void treeview1_NodeMouseClick(object sender,TreeNodeMouseClickEventArgs e)
TreeNode txSelect=this.treeView1.GetNodeAt(new Point(e.X,e.Y));
this.treeView1.SelectedNode=txSelect;//也可以写成e.Node;
编辑TreeView节点
将LabelEidt设置为true,在树上节点设置右键或者上节点,右键新增重命名选项。
private void ResetToolStripMenuItem_Click(object sender,EventArgs e)
this.menuTree.SelectNode.BeginEdit();
private void menuTree_AfterLabelEdit(object sender,NodeLabelEditEventArgs e)
string name=e.Label;
if (name==null)
//更改后的值=e.Node.Text;
//更改后的值=name;
注:节点的编辑实在Label上做的更改,在编辑状态后,不做操作时e.Label为空,所以在不更改的情况下要把原来的值重新赋值过来。
父节点选中时,子节点全部选中,同级子节点选中时,父节点选中
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
if (e.Action == TreeViewAction.ByMouse)
if (e.Node.Nodes != null)
CheckAllChildNode(e.Node);
CheckParentNode(e.Node);
private void CheckAllChildNode(TreeNode node)
foreach (TreeNode childNode in node.Nodes)
childNode.Checked = node.Checked;
if (childNode.Nodes != null)
CheckAllChildNode(childNode);
private void CheckParentNode(TreeNode node)
TreeNode parentNode = node.Parent;
if (parentNode == null)
return;
bool isAllChecked = true;
foreach (TreeNode nodeOhter in parentNode.Nodes)
if (nodeOhter.Checked == false)
isAllChecked = false;
break;
parentNode.Checked = isAllChecked;
if (parentNode.Parent != null)
CheckParentNode(parentNode);
}