WinForm——TreeView总结

简介: WinForm——TreeView总结

目录



常用属性


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);


           }


       }


目录
相关文章
|
数据挖掘 数据处理 C#
WPF技术之DataGrid控件
WPF DataGrid是一种可以显示和编辑数据的界面控件。它可以作为表格形式展示数据,支持添加、删除、修改、排序和分组操作。
295 0
|
C# 索引
WPF技术之ComboBox控件
WPF ComboBox控件是一个下拉列表框,它允许用户从列表中选择一个或多个项。它提供了一种简洁和交互性强的方式来选择数据。
261 0
|
数据可视化 C#
WPF技术之TreeView控件
WPF TreeView控件是一个用于显示分层数据的控件,类似于文件浏览器中的目录结构。
175 0
|
C# 容器
在WPF中使用winform控件WebBrowser
在WPF中使用winform控件WebBrowser
WPF 点击 Datagrid 中的TextBox 控件获取其所在行的数据
WPF 点击 Datagrid 中的TextBox 控件获取其所在行的数据
|
C#
WPF 4 DataGrid 控件(自定义样式篇)
原文:WPF 4 DataGrid 控件(自定义样式篇)      在《WPF 4 DataGrid 控件(基本功能篇)》中我们已经学习了DataGrid 的基本功能及使用方法。本篇将继续介绍自定义DataGrid 样式的相关内容,其中将涉及到ColumnHeader、RowHeader、Row、Cell 的各种样式设置。
2677 0
|
数据可视化 数据库 图形学
WinForm——ComboBox总结
WinForm——ComboBox总结
533 0
WinForm——ComboBox总结
|
C#
Seaching TreeVIew WPF
原文:Seaching TreeVIew WPF 项目中有一个树形结构的资源,需要支持搜索功能,搜索出来的结果还是需要按照树形结构展示,下面是简单实现的demo。 1.首先创建TreeViewItem的ViewModel,一般情况下,树形结构都包含DisplayName,Deepth,Parent...
834 0
|
C#
WPF 4 DataGrid 控件(基本功能篇)
原文:WPF 4 DataGrid 控件(基本功能篇)      提到DataGrid 不管是网页还是应用程序开发都会频繁使用。通过它我们可以灵活的在行与列间显示各种数据。本篇将详细介绍WPF 4 中DataGrid 的相关功能。
1557 0