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技术之TreeView控件
WPF TreeView控件是一个用于显示分层数据的控件,类似于文件浏览器中的目录结构。
183 0
|
C# 容器
在WPF中使用winform控件WebBrowser
在WPF中使用winform控件WebBrowser
|
数据可视化 数据库 图形学
WinForm——ComboBox总结
WinForm——ComboBox总结
550 0
WinForm——ComboBox总结
|
C#
Seaching TreeVIew WPF
原文:Seaching TreeVIew WPF 项目中有一个树形结构的资源,需要支持搜索功能,搜索出来的结果还是需要按照树形结构展示,下面是简单实现的demo。 1.首先创建TreeViewItem的ViewModel,一般情况下,树形结构都包含DisplayName,Deepth,Parent...
837 0
|
C#
在Winform窗体中使用WPF控件(附源码)
原文:在Winform窗体中使用WPF控件(附源码) 今天是礼拜6,下雨,没有外出,闲暇就写一篇博文讲下如何在Winform中使用WPF控件。原有是我在百度上搜索相关信息无果,遂干脆动手自己实现。 WPF控件的漂亮是Winform无法匹及的,本文主旨是在Winform工程中如何使用WPF控件。
1937 0
|
C#
WPF TreeView HierarchicalDataTemplate
原文 WPF TreeView HierarchicalDataTemplate   ...
1681 0
|
数据安全/隐私保护 容器 索引