相关文章推荐
奔跑的茄子  ·  C# ...·  2 周前    · 
近视的香菜  ·  [error ...·  1 年前    · 

目录



常用属性


CheckBoxes属性


LabelEdit属性


Nodes属性。


ShowLines属性


常用方法


CollapseAll()方法


ExpandAll()方法


GetNodeCount()方法


常用事件


AfterCheck事件。


AfterCollapse事件


AfterExpand事件


AfterLabelEdit事件


AfterSelect事件。


BeforeCheck事件。


BeforeCollapse事件。


BeforeExpand事件


BeforeLabelEdit事件


BeforeSelect事件


Click事件


实用案例


垂直滚动条出来的时候让它显示在最上面


设置Node的样式


获取鼠标选中的节点。


编辑TreeView节点


父节点选中时,子节点全部选中,同级子节点选中时,父节点选中


常用属性

CheckBoxes属性

该属性表示获取或设置一个值,用以指示是否在试图空间中的树节点旁显示复选框。


例:this.treeView1.CheckBoxes=True;


LabelEdit属性

该属性表示获取或设置一个值,用以指示是否可以编辑树节点的标签文本。如果让treeView1控件不能编辑树节点将LabelEdit设置为false。


Nodes属性。

该属性用于设置TreeView控件中所有节点


this.treeView1.Nodes.Add(“拉芳”);


ShowLines属性

当在同级节点之间或者树系欸但之间有线存在,该值为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;


}


else


{

//更改后的值=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);


}


}


原文:Seaching TreeVIew WPF 项目中有一个树形结构的资源,需要支持搜索功能,搜索出来的结果还是需要按照树形结构展示,下面是简单实现的demo。 1.首先创建TreeViewItem的ViewModel,一般情况下,树形结构都包含DisplayName,Deepth,Parent...
原文:WPF中TextBox文件拖放问题 在WPF中,当我们尝试向TextBox中拖放文件,从而获取其路径时,往往无法成功(拖放文字可以成功)。造成这种原因关键是WPF的TextBox对拖放事件处理机制的不同,具体可参考这篇文章Textbox Drag/Drop in WPF,本文只是介绍如何解决这一问题。