TreeView用法小结

合集下载

C#Winform中treeView控件使用总结

C#Winform中treeView控件使用总结

C#Winform中treeView控件使⽤总结1.如何展开结点时改变图标(注意:不是选中时)要在⽬录中使⽤图标⾸先要加⼊⼀个控件ImageList(命名为imageList1),然后可以按图⽚的index或名称引⽤图⽚.然后需要在TreeView控件的ImageList属性中指向imageList1.TreeView有两个属性:SelectImageIndex:选中该结点时显⽰的图⽚的索引ImageIndex:未选中该结点时显⽰的图⽚的索引可以实现的效果是,选中某个结点时该结点的图⽚进⾏改变,如果我们的⽬标也是如此,万事已经⼤吉了.但我希望的效果是:展开某个结点时该结点的图⽚改变(如显⽰为打开的盒⼦),折叠时该结点的图⽚改变(如包装好的盒⼦).直接使⽤属性⽆法实现该效果.实现原理是:展开某个结点时将SelectImageIndex和ImageIndex统统指向打开盒⼦的图⽚折叠某个结点时将SelectImageIndex和ImageIndex统统指向包装盒⼦的图⽚⾃然需要⽤到两个事件:TreeView的AfterExpand和AfterCollapse事件private void treeView1_AfterExpand(object sender, TreeViewEventArgs e){e.Node.ImageIndex = 1; //指向展开的图标e.Node.SelectedImageIndex = 1;//指向展开的图标}private void treeView1_AfterCollapse(object sender, TreeViewEventArgs e){e.Node.ImageIndex = 0; //指向关闭的图标e.Node.SelectedImageIndex = 0;//指向关闭的图标}PS:当对某个结点的属性ImageIndex和SelectedImageIndex赋值后,向它添加的⼦结点如未指定该属性,似乎会沿⽤⽗结点的属性,所以通常我会对⼦结点单独设置该值 .2.重命名结点名称重命名结点的功能很好实现,只要将TreeView的LabelEdit属性改为True即可.选中某个结点后再单击(提⽰:间隔短的话算做双击),然后结点名称变成可以编辑状态,修改⽂本后即可完成.但我的程序设计是这样的:结点的名称会在后⾯⾃动加⼊⼦结点的数量(注:树的深度为2).效果如图:这样就会带来⿇烦(我们总是擅长给⾃⼰制造⿇烦?),因为我在重命名的时候并不想在编辑状态下名称中包含后⾯数字(它只在显⽰的时候出现).假设我希望将"新建分组"重命名为"我的分组",我希望进⼊编辑状态时,名称为"新建分组",修改后的名称为"我的分组",退出编辑状态时显⽰为"我的分组[1]".那实际的逻辑就是这样:1.进⼊编辑状态时将名称的数字去掉2.退出编辑状态时将名称加⼊数字.so easy!那如何获取进⼊编辑状态时的事件呢?我没有找到,或者可能就没有,但我们可以在结点的单击事件中进⾏捕获,再判断结点的⽂本是否为选中状态private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e){if (e.Node.IsSelected){e.Node.Text = "替换掉数字,请⾃⼰实现";}}然后捕捉编辑结束事件,实现加数字的⽅法private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e){if (!e.CancelEdit){ e.Node.Text=bel+string.Format(" [{0}]", e.Node.Nodes.Count.ToString()); e.CancelEdit = true; //注意这⾥ } }以下是重点:在上⾯的代码没加⼊ e.CancelEdit = true 之前,会有⼀个奇怪的现象,当我将结点的名称修改后不会出现后⾯的数字.假设我修改的顺序是这样:将A->B->B很有趣的现象:当从A变成B时后⾯的数字不会出现,当从B变成B时(实际没有发⾏变动),数字⼜出现了.跟踪了很久的程序加上了很长的时间分析,终于明⽩原因了.当我们修改结点的⽂本时是这样的⼀个顺序:结点进⼊编辑状态->触发BeforeLabelEdit事件->触发AterLabelEdit事件->刷新界⾯⽤新值代替旧值.在 treeView1_AfterLabelEdit事件的参数中有两个属性:bel 修改之后的值(新值,可能为null,只读) 和s.Node.Text 修改之前的值(旧值,可读写).仔细分析后可以理解上⾯的现象:当从A->修改为B时,我们的代码对e.Node.Text(旧值)进⾏了赋值加⼊数字,最后程序刷新界⾯时会⽤新值代替旧值.这时我们加⼊的数字被新值Label覆盖了(代码做了⽆⽤功)⽽我们从B->修改为B时,由于新值(Label)为null,则系统不会执⾏最后⼀步,所以我们添加的数字得到了保留.最终的做法,就是将参数的e.CancelEdit改为true,告诉系统我们就当我们没有编辑过吧.这样系统就不会执⾏最后⼀步了,我们代码的修改得到了保留.。

ue4 treeview树形结构的简单使用方法

ue4 treeview树形结构的简单使用方法

一、UE4中的TreeView树形结构概述UE4是一款功能强大的游戏开发工具,拥有丰富的功能和组件,其中就包括了TreeView树形结构。

TreeView是一种常见的用户界面控件,可以用于展示层级关系的数据,比如文件夹结构、菜单树等。

在UE4中,使用TreeView可以实现复杂的层级菜单、属性面板等功能,为游戏开发提供了便利。

二、创建TreeView树形结构1. 在UE4中,首先需要创建一个新的UserWidget,作为TreeView的父容器。

在编辑器中选择“User Interface” -> “Widget Blueprint”,创建一个新的UserWidget,并命名为TreeWidget。

2. 在TreeWidget中添加一个TreeView控件,可以在左侧的“Palette”中找到TreeView,并将其拖拽到TreeWidget的CanvasPanel中。

3. 接下来,我们需要在TreeView中添加树形结构的数据。

在TreeWidget的蓝图中创建一个函数,用于绑定数据到TreeView上。

我们可以创建一个名为BindData的函数,然后在该函数中使用AddChild和AddRoot函数向TreeView中添加节点数据。

4. 通过调用TreeView的SetItemHeight函数,可以设置每个节点的高度,使得TreeView显示更加美观。

还可以通过SetIndentation函数设置节点的缩进距离,以体现层级关系。

三、处理TreeView树形结构的交互1. 在UE4中,TreeView是支持交互操作的,比如鼠标点击、拖拽等。

通过监听TreeView的事件,我们可以实现节点的展开、折叠、选中等操作。

2. 在TreeWidget的蓝图中,可以通过绑定TreeView的事件回调函数来处理交互操作,比如OnItemClicked、OnItemDoubleClicked 等。

在这些回调函数中,可以编写逻辑代码来处理节点的展开、折叠等操作。

duilib treeview 用法总结

duilib treeview 用法总结

duilib treeview 用法总结下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!当今社会,随着信息化的发展,人们对于数据的展示和管理需求日益增加。

tkinter treeview用法

tkinter treeview用法

tkinter treeview用法Tkinter Treeview是一个常用的Python GUI工具包中的组件,它提供了一种以树形结构展示数据的方式。

使用Tkinter Treeview,您可以方便地显示、编辑和管理具有父子关系的数据。

在使用Tkinter Treeview时,您首先需要导入tkinter模块,并创建一个根窗口。

然后,可以创建一个Treeview对象并将其添加到根窗口中。

```pythonimport tkinter as tkfrom tkinter import ttkroot = ()tree = ttk.Treeview(root)tree.pack()```接下来,您可以利用add()方法向Treeview中添加树节点。

每个节点需要指定一个唯一的标识符,以及显示在Treeview中的文本。

```python# 添加根节点root_node = tree.insert("", "end", text="Root Node", iid="root")# 添加子节点child_node = tree.insert(root_node, "end", text="Child Node", iid="child")```除了文本,您还可以向每个节点添加其他的数据,并指定显示的图标。

```python# 添加数据和图标tree.set(child_node, "column_name", "Value")tree.item(child_node, tags=("data",))```如果想要编辑或删除节点,可以使用delete()方法。

```python# 删除节点tree.delete(child_node)```还可以像列样式、排序和扩展图标等进行自定义设置。

treeview用法

treeview用法

treeview用法Treeview一种用于展示数据层次的可视化控件,它通常被用来展示文件夹的内容、文件树状结构、网站的导航结构等。

它可以使用鼠标点击来展开和收起,它的数据通常以树的形式呈现,它可以使用来递归展示数据,以及实现展开和收起的效果。

Treeview使用步骤是:1. 入 Treeview件首先,我们需要在项目中引入 Treeview件,一般来讲,我们可以使用 JavaScript、jQuery、bootstrap相关库来引入 Treeview。

2. 建数据源在使用 Treeview件之前,我们需要准备一份用于展示的文件树状结构的数据。

常见的数据源有 JavaScript数组、JSON式的数据格式等。

3. 始化 Treeview件接着,我们将 Treeview件初始化,通常我们需要指定数据源,以及一些属性,比如支持展开收起等。

4. 建 Treeview 事件当我们在使用 Treeview件的时候,可以创建一些事件,比如点击事件等,这样我们就可以在点击 Treeview件的任意节点时做出相应的反应。

总的来说,Treeview 为我们提供了一种实现文件树状结构展示的可视化控件。

它可以为我们呈现出简洁清晰的数据层次结构,它可以帮助我们更方便地使用它来构建文件层次结构。

Treeview 也可以用于其他更多的场景,比如用于网站的导航设计。

简单的设计可以让用户快速地找到所需的内容,而复杂的设计则可以实现对访问量的控制,帮助用户快速地找到有用的内容。

另外,通过 Treeview件,我们可以让用户看到更直观、更清晰的网站结构,从而使用户可以更加顺利地浏览网站。

另外,Treeview件还可以用于实现较大数据量的展示。

针对于较大的数据量,我们可以利用 Treeview层级展示,实现较大数据量的展示,同时又保留了数据的层次结构,使用户可以更加顺利地浏览数据。

Treeview一种使用极为广泛的可视化控件,它可以用于文件树状结构的展示、网站的导航设计、较大数据量的展示等,它的使用与实现相比较简单,使用它来可视化展示数据是一种更加有效的方式。

tkinter中treeview用法

tkinter中treeview用法

tkinter中treeview用法tkinter是一个常用的Python图形用户界面(GUI)库,它提供了一组用于创建和管理窗口、组件和控件的功能。

其中,treeview是tkinter中一个常用的控件,用于显示数据的多层次结构。

treeview的基本用法如下:1. 导入必要的模块和库:```from tkinter import *from tkinter.ttk import Treeview```2. 创建主窗口:```root = Tk()root.title("TreeView Example")```3. 创建treeview对象:```tree = Treeview(root)tree.pack()```4. 定义treeview的列和列名:```tree["columns"] = ("column1", "column2", "column3")tree.heading("column1", text="Column 1")tree.heading("column2", text="Column 2")tree.heading("column3", text="Column 3")```5. 添加数据到treeview中:```tree.insert(parent="", index="end", text="Item A", values=("Value A1", "Value A2", "Value A3"))tree.insert(parent="", index="end", text="Item B", values=("Value B1", "Value B2", "Value B3"))```6. 绑定事件处理函数:```def handle_select(event):selected_item = tree.focus()item_text = tree.item(selected_item, "text")print("Selected Item:", item_text)tree.bind("<<TreeviewSelect>>", handle_select)```7. 运行主消息循环:```root.mainloop()```以上是treeview的基本用法,下面将详细介绍各个步骤。

用户控件-TreeView的用法

用户控件-TreeView的用法

⽤户控件-TreeView的⽤法Treeview中ontreenodepopulate是⼀个很好的事件,当你点击树的某个节点时调⼊数据库展现此节点下的数据,并且⽆刷新,当树展现的数据多的时候就可以⽤此⽅法如MSDN的树,但如果数据不多的时候没有必要⽤此⽅法,因为要频繁调数据库好闲话少说由于是⽤户控件所以把 treeview的部分属性和事件公共,⽅便⽤此控件的页⾯调⽤页⾯ TreeDept.ascx<%@ Control Language="C#" AutoEventWireup="true" CodeFile="TreeDept.ascx.cs" Inherits="UserControls_TreeDept" %><asp:TreeView ID="TreeView1" runat="server" ExpandDepth="1" ImageSet="Contacts"NodeIndent="10" onselectednodechanged="TreeView1_SelectedNodeChanged"ontreenodepopulate="TreeView1_TreeNodePopulate" Width="101px"><ParentNodeStyle Font-Bold="True" ForeColor="#5555DD" /><HoverNodeStyle Font-Underline="False" /><SelectedNodeStyle Font-Underline="True" HorizontalPadding="0px"VerticalPadding="0px" /><NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black"HorizontalPadding="5px" NodeSpacing="0px" VerticalPadding="0px" /></asp:TreeView>TreeDept.ascx.CSpublic partial class UserControls_TreeDept : erControl{public event EventHandler DeptSel;public string DeptSelectNodeText{get { return TreeView1.SelectedNode.Text; }}SqlConnection con = new SqlConnection(@"server=LT-C9A4FDA64461;uid=sa;pwd=sa;database=ltweb");protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){BindTree();}}void BindTree(){TreeNode tn = new TreeNode();tn.Text = "软件";tn.Value = "1";tn.PopulateOnDemand = true;TreeView1.Nodes.Add(tn);}protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e){SqlCommand cmd = new SqlCommand("select * from dept where parentID="+int.Parse(e.Node.Value),con);SqlDataAdapter sda = new SqlDataAdapter(cmd);DataTable dt = new DataTable();sda.Fill(dt);foreach (DataRow dr in dt.Rows){TreeNode tn = new TreeNode(dr["Dept_Name"].ToString(), dr["Dept_ID"].ToString());tn.PopulateOnDemand = true;e.Node.ChildNodes.Add(tn);}}protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e){if(DeptSel!=null)DeptSel(this,EventArgs.Empty);}}调⽤页⾯<form id="form1" runat="server"><div><uc1:TreeDept ID="TreeDept1" runat="server" OnDeptSel="DeptSel_Change"/> </div></form>后台public partial class Dept : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void DeptSel_Change(object sender, EventArgs e){Response.Write(TreeDept1.DeptSelectNodeText);}}。

treeview用法

treeview用法

treeview用法Treeview一种常见的UI素,用于在显示层次结构的数据。

它通常用来显示目录树状结构,在 Windows统中,它经常被用作文件管理器,让用户可以快速查找和查看文件和文件夹。

在 web用中,Treeview于构建层次结构的菜单,用户使用它可以更加轻松和高效地浏览信息。

Treeview一种常用的控件,也是一种重要的交互元素。

Treeview 一般被用来显示多级树状结构,分级显示文件、文件夹和其他信息,以便用户可以快速找到所需的内容。

Treeview常有两种常见的操作,一是点击节点以展开或收缩节点,以查看其子节点;二是点击节点来查看其具体内容。

Treeview使用比较灵活,它可以应用于各种不同类型的介质上,如 Windows脑、web用等。

在 Windows统中,Treeview被用来作为用户界面的一部分,用户可以在 Treeview 中浏览不同的文件夹,管理文件;在 web用中,Treeview以用来显示和编辑目录结构,构建菜单;在自定义的软件中,Treeview以用来显示应用程序的层次结构,不同的节点可以指向不同的操作。

Treeview实现方式也有很多种。

在 Windows统中,Treeview以通过 Windows API实现,也可以使用可视化控件,如 WPF TreeView 件;对于 web用,可以使用 HTML、CSS JavaScript实现 Treeview,也可以使用 jQuery、Angular者其他基于 JavaScript技术来实现;对于软件程序,可以使用 C #、Java、Python语言来实现 Treeview。

无论是 Windows统、web用还是软件程序,Treeview是一种重要的 UI素,它可以帮助用户更加轻松和高效地浏览和操作信息。

无论你要构造什么样的 Treeview,记住要在设计时考虑到它的易用性,可以丰富 Treeview功能,提升它的用户体验。

TreeView详细用法

TreeView详细用法

TreeView详细⽤法Treeview⽤于显⽰按照树形结构进⾏组织的数据。

Treeview控件中⼀个树形图由节点(TreeNode)和连接线组成。

TtreeNode是TTreeview的基本组成单元。

⼀个树的节点⼜包含⽂本(Text)和数据(Data)。

Text为String类,Data则为⽆定形指针(Untyped Pointer),可以指向⼀个与节点相联系的数据结构。

每⼀个节点下⼦节点形成这⼀节点的Items属性,当前节点有⼀个唯⼀的Index(TreeNode的Index属性),⽤于说明⼦节点在Items中的位置,每⼀个节点下的⼦节点是顺序编号的,第⼀个是0,第⼆个是1,依次类推。

⽤IndexOf⽅法获得⼦节点的顺序,绝对顺序(AbsoluteIndex)则是指从Treeview第⼀个项开始的顺序值,第⼀个是0,如此推下去。

Item属性则根据Index的值返回当前节点的第Index个⼦节点。

Count则表明属于此项的所有⼦节点的数量。

⽤MoveTo⽅法将Item由⼀个位置移到另⼀个位置。

Expanded属性表明是否所有的⼦项都全部展开(包括⼦项的⼦项),为True表⽰全部展开。

IsVisible属性表明⼀个项是否在树中能被看到,如果树全部展开那么这个Item是肯定可以被看到。

HasChildren属性表明⼀个项是否有⼦项。

GetFirstChild, GetLastChild, GetPrevChild,and GetNextChild分别返回当前项⼦项的第⼀个、最后⼀个和前⼀个、后⼀个项。

GetNextSibling and GetPrevSibling则返回在同⼀Level下的下⼀个和上⼀个项。

GetNextVisible and GetPrevVisible则返回能看得到的下⼀个和上⼀个项。

如果⼀个节点有Parent,则HasAsParent⽅法返回True. Parent为当前项的⽗项。

VB中TreeView的用法和几个实例

VB中TreeView的用法和几个实例

VB中TreeView的用法和几个实例VB中TreeView的用法和几个实例*****************************************1、为树状浏览器控件添加节点和子节点用ADD方法添加一个新节点到树状浏览器的NODES集合时,可以声明它是和已存在的节点所联系起来的。

通常使用ADD方法,其语法如下:Nodes.Add(relative,[relationship][,key][,text][,image][,selecte dimage])各个参数的意义如下:relationship 参数是通过关系节点参数与新节点连接的另一个节点;relationship 参数可能是以下情况:tvwlast--1;该节点置于所有其他的在relative中被命名的同一级别的节点的后面tvwNext--2;该节点置于在relative中被命名节点的后面tvwPrevius--3;该节点置于在relative中被命名的节点的前面tvwChild--4;该节点成为在relative中被命名的节点的的子节点下面是一个例子:Dim node1,node2,node3,node4 as Nodeset Node1=TreeView1.Nodes.AddTreeView1.Nodes(1).text="node1"TreeView1.Nodes(1).key="node1"Set node2=treeview.nodes.add("node1",tvwChild,"node2") TreeView1.Nodes(2).text="node2"TreeView1.Nodes(2).key="node2"依次插入节点即可。

2、为节点插入图象treeview1.node(3).image="leaf"注意我们一般从imagelist中指定图象3、处理节点的点击,怎样才能知道树状浏览器的哪一个节点被点击了呢?可以用NodeClick 事件:public sub treeview1_nodeclick(byval node as comctllib.node) text1.text="you click"&node.textend sub*********************************************************2、TreeView的使用,及选中其中指定的节点’=============Private Sub Command1_Click()Dim nodeY As NodeFor Each nodeY In TreeView1.NodesIf CStr(Trim(nodeY.Text)) = "ff" ThennodeY.Selected = TrueTreeView1.SetFocusExit ForEnd IfNextPrivate Sub Form_Load()/doc/95892732.html,mandType = adCmdTextRs1.RecordSource = "select distinct biao,zu from test order by zu"Rs1.RefreshDim Rs As ADODB.RecordsetSet Rs = Rs1.RecordsetSet nodX = TreeView1.Nodes.Add(, , "r", "报表组 ")i = 0Dim TempString As StringDim TempKey As LongDo Until Rs.EOF Or Rs.BOFIf TempString = Rs!zu ThenSet nodeX = TreeView1.Nodes.Add("Z" & TempKey, tvwChild, "B" & i, Rs!biao)ElseSet nodX = TreeView1.Nodes.Add("r", tvwChild, "Z" & i, Rs!zu) Set nodeX = TreeView1.Nodes.Add("Z" & i, tvwChild, "B" & i, Rs!biao)TempString = Rs!zuTempKey = iEnd IfRs.MoveNexti = i + 1Loop**********************************************************3'功能:选择Treeview节点下所有节点'----------------------------------------------------------------------------Private Sub Form_Load()TreeView1.Checkboxes = TrueTreeView1.Nodes.Add , "R", "root", "root"TreeView1.Nodes.Add "root", tvwChild, "key1", "aa"TreeView1.Nodes.Add "key1", tvwChild, "key11", "ccc"TreeView1.Nodes.Add "root", tvwChild, "key2", "bb"TreeView1.Nodes.Add "key2", tvwChild, "key21", "ddd"TreeView1.Nodes.Add "key2", tvwChild, "key211", "eee"For I = 1 To TreeView1.Nodes.CountTreeView1.Nodes(I).Expanded = TrueNextEnd SubPrivate Sub CheckChild(ByVal Node As MSComctlLib.Node, ByVal bCheck As Boolean, Optional ByVal bNext As Boolean = True, Optional ByVal bChild As Boolean = True)If Not Node Is Nothing ThenNode.Checked = bCheckIf Node.Children And bChild ThenCall CheckChild(Node.Child, bCheck, True, True) '对子节点End IfIf bNext ThenCall CheckChild(Node.Next, bCheck, True, bChild) '对同一层节点End IfEnd IfEnd SubPrivate Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)Call CheckChild(Node, Node.Checked, False, True) '处理子节点End Sub。

qt treeview 使用方法

qt treeview 使用方法

qt treeview 使用方法Qt的TreeView类是QAbstractItemView的子类,用于显示一个树形结构的数据模型。

使用TreeView的方法包括以下几步:1. 创建一个TreeView实例:```QTreeView *treeView = new QTreeView(parent);```2. 创建一个数据模型,并将其设置为TreeView的模型:```QStandardItemModel *model = new QStandardItemModel(parent); treeView->setModel(model);```3. 在模型中添加数据,可以使用QStandardItem类创建并设置每个项的属性:```QStandardItem *item = new QStandardItem("Item 1");model->appendRow(item);QStandardItem *childItem = new QStandardItem("Child Item 1"); item->appendRow(childItem);```4. 如果需要,可以设置TreeView的其他属性,例如显示树形线条、设置列头等:```treeView->setRootIsDecorated(true); // 显示树形线条treeView->setHeaderLabels(QStringList() << "Column 1" << "Column 2"); // 设置列头```5. 根据需要,可以处理TreeView的信号,例如点击、选择等:```connect(treeView, &QAbstractItemView::clicked, this,&MyClass::onTreeViewClicked);```这些是使用Qt的TreeView的基本步骤,根据需要可以进一步添加自定义样式、设置不同的委托等。

tree widget用法

tree widget用法

tree widget用法QTreeWidget是一个用于显示树形结构数据的控件,它可以包含多个顶层结点和子结点。

下面是QTreeWidget的一些基本用法:创建QTreeWidget对象:首先需要创建一个QTreeWidget对象,可以在Qt Designer 中拖拽添加,或者通过代码创建。

添加顶层结点:使用QTreeWidget的addTopLevelItem()方法来添加顶层结点。

例如:pythontreeWidget.addTopLevelItem(QTreeWidgetItem(treeWidget))添加子结点:使用QTreeWidgetItem的addChild()方法来添加子结点。

例如:pythontopItem = QTreeWidgetItem(treeWidget)childItem = QTreeWidgetItem(topItem)topItem.addChild(childItem)设置结点文本:使用QTreeWidgetItem的setText()方法来设置结点的文本。

例如:pythonitem = QTreeWidgetItem(treeWidget)item.setText(0, "结点文本")展开和折叠结点:使用QTreeWidget的expand()和collapse()方法来展开和折叠结点。

例如:pythontreeWidget.expand(item.index())treeWidget.collapse(item.index())获取选中结点:使用QTreeWidget的currentItem()方法获取当前选中结点。

例如:pythoncurrentItem = treeWidget.currentItem()删除结点:使用QTreeWidgetItem的takeChild()或removeChild()方法删除结点。

例如:pythonchildItem = topItem.child(0)topItem.removeChild(childItem)这些是QTreeWidget的一些基本用法,可以根据具体需求进行扩展和定制。

TreeView的用法基本用法

TreeView的用法基本用法

TreeView 的用法开始(挺全的)//************* TreeView 的用法开始******************//一:TreeView.Items[0].Expanded := True; // 展开第一个节点二:TreeView.Items[0].Item[0].Selected := True; // 移动到第一个节点的第一个子节点找当前节点的下一个节点,按序号找如下:if treeview1.Selected.GetNext<>nil thentreeview1.Selected.GetNext.Selected:=true;TreeView1.SetFocus;找当前节点的下一个同层兄弟如下:if treeview1.Selected.getNextSibling<>nil thentreeview1.Selected.getNextSibling.Selected:=true;TreeView1.SetFocus;TreeView.Selected.getPrevSibling //当前选中节点的上一个兄弟节点TreeView.Selected.Parent // 当前选中节点的父节点getfirstchild是跳到该节点子结点中的第一个getlastchild是跳到该节点子结点中的最后一个如果你是想跳到同层兄弟结点的第一个if treeview1.selected.parent<>nil thentreeview1.selected.parent.getfirstchild.selected:=trueelsetreeview1.items.item[0].selected:=true;如果你是想跳到同层兄弟结点的最后一个if treeview1.selected.parent<>nil thentreeview1.selected.parent.getlastchild.selected:=trueelsetreeview1.Items.Item[treeview1.Items.Count-1].Selected:=true;TreeView的使用方法基本信息:TreeView 是一个显示树型结构的控件,每一个节点都是一个新类,使用具有代表性每个节点都有四个值:TEXT:显示文字 Image Index:显示图形序号Selected Index:State Index:(1)建立目录项(本例中使用的TREEVIEW名称为:TvwTips)增加根目录下的节点:(节点)varCatNode : TTreeNode; //先建立一个TREEVIEW使用的子对象beginTvwTips.SetFocus; //将焦点置到这个TREEVIEW控件上{ 在根标题下建立一个新的子标题 }CatNode := TvwTips.Items.AddChild(TvwTips.Items.GetFirstNode,'New Category' );CatNode.ImageIndex := 1;CatNode.SelectedIndex := 2;CatNode.EditText; { 允许用户改变这个标题 }end; 增加下一级目录(内容):varParentNode, TipNode : TTreeNode; //先建立TREEVIEW使用的子对象VersionNum : Integer;beginTvwTips.SetFocus; //将焦点置到这个TREEVIEW控件上VersionNum := TMenuItem( Sender ).Tag; { Ver num of new tip } ParentNode := TvwTips.Selected; { 取出当前的选中节点 }if ParentNode.Level = nlTip then{ Parent cannot be a tip node } ParentNode := TvwTips.Selected.Parent;TipNode := TvwTips.Items.AddChildObject( ParentNode,'New Subject',Pointer( VersionNum ) );TipNode.ImageIndex := 3; { Normal tip bitmap }TipNode.SelectedIndex := 4; { Highlighted tip bitmap } TipNode.MakeVisible; { Move new tip node into view }TipNode.EditText; { Immediately allow user to edit subject } EnableTreeViewFunctions( TipNode.Level );RtfTip.Clear;RtfTip.Modified := False;end;(2)说明 TvwTips.Items.GetFirstNode 返回TREEVIEW的第一个节点,函数类型为:TTreeNodeTvwTips.Items.Count 返回当前TreeView的全部节点数,整数TvwTips.Selected.Level 返回当前选中节点的在目录树中的级别,根目录为0TvwTips.Selected.Parent 返回当前选中节点上级节点,函数类型为:TTreeNode三、下面这段程序是用TREEVIEW连数据库及一些操作:unit bmzd;interfaceusesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Db, DBTables, ImgList, Buttons, ExtCtrls, Grids,DBGrids;typeTfrmbmzd = class(TForm)Panel1: TPanel;cmd_new: TBitBtn;cmd_delete: TBitBtn;cmd_exit: TBitBtn;tvwcode: TTreeView;ScrollBox1: TScrollBox;GroupBox2: TGroupBox;Label3: TLabel; Label2: TLabel; Label1: TLabel; Label4: TLabelLabel5: TLabel; Edit2: TEdit; Edit3:TEdit; Edit4: TEdit; Edit5: TEdit;ImageList1: TImageList;Edit1: TEdit;cmd_save: TBitBtn; cmd_update: TBitBtn;procedure FormShow(Sender: TObject);procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure cmd_newClick(Sender: TObject);procedure cmd_deleteClick(Sender: TObject);procedure Edit2KeyPress(Sender: TObject; var Key: Char);procedure tvwcodeChange(Sender: TObject; Node: TTreeNode); procedure cmd_updateClick(Sender: TObject);procedure BitBtn2Click(Sender: TObject);procedure tvwcodeClick(Sender: TObject);private{ Private declarations }function LoadCode(crTbl:TDBDataSet):Integer;function GetLevel(sFormat,sCode:String):Integer;public{ Public declarations }end;varfrmbmzd: Tfrmbmzd;ii:integer;tv:ttreenode;constSCodeFormat = '222222'; //科目代码结构SFirstNodeTxt = '部门分类';implementationuses dm;{$R *.DFM}function tfrmbmzd.LoadCode(crTbl:TDBDataSet):Integer;var NowID,sName,ShowTxt:String;i,Level:Integer;MyNode:array[0..6]of TTreeNode;//保存各级节点,最长支持6级(重点)beginScreen.Cursor:=crHourGlass;Level:=0;With frmdm.tabbm dobegintryif not Active then Open;First;tvwCode.Items.Clear;//以下是增加第一项MyNode[Level]:=tvwCode.Items.Add (tvwCode.TopItem,SFirstNodeTxt);MyNode[Level].ImageIndex:=0;MyNode[Level].SelectedIndex:=0;//以上是增加第一项While Not Eof dobeginNowID:=Trim(FieldByName('bumeng_id').AsString); ShowTxt:=FieldByName('bumeng_name').AsString; Level:=GetLevel(SCodeFormat,NowID);//返回代码的级数//以下是增加子项//以下用上一级节点为父节点添加子节点if Level>0 then//确保代码符合标准beginMyNode[Level]:=tvwCode.Items.AddChild (MyNode[Level-1],NowID+' '+ShowTxt);MyNode[Level].ImageIndex:=1;MyNode[Level].SelectedIndex:=2;end; //以上是增加子项Next;end;finallyClose;end;end;MyNode[0].Expand(False);//将首节点展开Screen.Cursor:=crDefault;end;//以上函数将Code.db表中的科目代码和科目代码名称显示出来//下面函数的功能是返回一代码的级数,//参数sFormat传递科目代码结构;//参数sCode传递某一科目代码function tfrmbmzd.GetLevel(sFormat,sCode:String):Integer;var i,Level,iLen:Integer;beginLevel:=-1;//如果代码不符合标准,则返回-1iLen:=0;if (sFormat<>'')and(sCode<>'')thenfor i:=1 to Length(sFormat) dobeginiLen:=iLen+StrToInt(sFormat[i]);if Length(sCode)=iLen thenbeginLevel:=i;Break;end;end;Result:=Level;end;procedure Tfrmbmzd.FormShow(Sender: TObject);beginif not frmdm.tabbm.active then frmdm.tabbm.Open;frmdm.tabbm.IndexFieldNames:='BUMENG_ID';//按字段aCode排序(不要漏掉)LoadCode(frmdm.tabbm);end;procedure Tfrmbmzd.FormClose(Sender: TObject; var Action: TCloseAction); beginAction := caFree;end;procedure Tfrmbmzd.cmd_newClick(Sender: TObject);begintvwcode.SetFocus ;if tvwcode.selected.AbsoluteIndex<>0 thenbegincmd_delete.Enabled:=true;cmd_update.Enabled:=true;cmd_save.Enabled :=true;if not frmdm.tabbm.Active then frmdm.tabbm.Open;edit1.text:=frmdm.tabbm.Fields[0].asstring;end;tvwcode.SetFocus ;tvwcode.Items.AddChild(tvwcode.selected,'新建部门');if tvwcode.Selected.HasChildren thenbeginif tvwcode.Selected.GetLastChild.index+1>9 thenedit2.text:=inttostr(tvwcode.Selected.GetLastChild.index+1)elseedit2.text:='0'+inttostr(tvwcode.Selected.GetLastChild.index+1);edit3.text:='新建部门';edit2.Enabled:=true;edit3.Enabled:=true;endelsebeginedit2.text:='01';edit3.text:='新建部门';edit2.Enabled:=true;edit3.Enabled:=true;end;if not frmdm.tabbm.Active then frmdm.tabbm.Open; frmdm.tabbm.edit;frmdm.tabbm.Append;cmd_new.Enabled :=false;cmd_delete.Enabled :=false;cmd_update.Enabled :=false;cmd_save.Enabled :=true; //新建下级部门tvwcode.Selected.GetLastChild.Selected:=true;//设选择tv:=tvwcode.Selected ;tvwcode.autoExpand:=true;tvwcode.SetFocus ;end;procedure Tfrmbmzd.cmd_deleteClick(Sender: TObject); varI:integer;seno,setext:string;beginif tvwcode.Selected.HasChildren=true thenbeginapplication.messagebox('该部门包含下级,不能删除','提示',MB_OKCANCEL+mb_iconquestion ) ;endelsebeginif application.messagebox('你确实要删除当前部门吗','提示',MB_OKCANCEL+mb_iconquestion )=IDOK thenbeginsetext:=tvwcode.selected.text;i:=0;while setext[i] <> ' ' dobeginI := I + 1;seno:=seno+setext[i];end;if not frmdm.tabbm.Active then frmdm.tabbm.Open;frmdm.tabbm.setkey;frmdm.tabbm.Fields[0].asstring:=seno;if frmdm.tabbm.GotoKey thenbeginfrmdm.tabbm.edit;frmdm.tabbm.Delete;end;tvwcode.Selected.Delete ;cmd_new.Enabled :=true;tvwcode.autoExpand:=true;tvwcode.SetFocus ;end;end;end;procedure Tfrmbmzd.Edit2KeyPress(Sender: TObject; var Key: Char); beginif key in ['0'..'9',Chr(vk_Back)] thenelsebeginkey:=#0;application.messagebox('','',mb_ok);end;end;procedure wcodeChange(Sender: TObject; Node: TTreeNode);vari,lev:integer ;strr,seno,setext:string;beginif cmd_new.Enabled =true thenbeginif tvwcode.selected.AbsoluteIndex<>0 thenbegincmd_delete.Enabled:=true;cmd_update.Enabled:=true;cmd_save.Enabled :=true;setext:=tvwcode.selected.text;i:=0;while setext[i] <> ' ' dobeginI := I + 1;seno:=seno+setext[i];end;if not frmdm.tabbm.Active then frmdm.tabbm.Open;frmdm.tabbm.setkey;frmdm.tabbm.Fields[0].asstring:=seno;frmdm.tabbm.GotoKey;strr:='';case tvwcode.Selected.Level of2: strr:=copy(frmdm.tabbm.fields[0].asstring,1,2);3: strr:=copy(frmdm.tabbm.fields[0].asstring,1,4);end;edit1.text:=strr;//加上级编码edit3.text:=frmdm.tabbm.Fields[1].asstring;//本级编码edit2.text:=copy(frmdm.tabbm.fields[0].asstring,length(frmdm.tabbm.fields[0].asstring)-1,2 );endbeginedit1.text :='';edit2.text :='';edit3.text :='部门分类';cmd_delete.Enabled :=false;cmd_update.Enabled :=false;end;end;end;procedure Tfrmbmzd.cmd_updateClick(Sender: TObject); vari:integer;beginfor i:=0 to ComponentCount-1 dobeginif (Components[I] is tedit ) then(Components[I] as tedit).enabled:=false;end;for i:=0 to ComponentCount-1 dobeginif (Components[I] is tbitbtn ) then(Components[I] as tbitbtn).enabled:=true;end;if tvwcode.Selected.AbsoluteIndex<>0 thenbeginif not frmdm.tabbm.Active then frmdm.tabbm.Open; frmdm.tabbm.Edit;frmdm.tabbm.Fields[0].asstring:=edit1.text+edit2.text; frmdm.tabbm.Fields[1].asstring:=edit3.text;tryfrmdm.tabbm.Post;//表的保存excepton edbengineerror doedit2.Enabled :=true;application.messagebox('编号不能重复,请重新输入','提示',MB_OK+mb_iconquestion ) ; exit;end;end;tvwcode.Selected.Text:=edit1.text+edit2.text+' '+edit3.text;tvwcode.SetFocus ; //修改树end;cmd_new.Enabled :=true;edit2.Enabled :=false;end;procedure Tfrmbmzd.BitBtn2Click(Sender: TObject);begincmd_new.Enabled :=false;cmd_delete.Enabled :=false;edit2.enabled:=true;edit3.Enabled :=true;end;procedure wcodeClick(Sender: TObject);vari:integer;beginif cmd_new.Enabled =false thenbeginapplication.MessageBox('当前是修改状态,请单击保存按钮','提示',mb_ok);tv.Selected :=true;end;if tvwcode.selected.AbsoluteIndex=0 thenbeginfor i:=0 to ComponentCount-1 dobeginif (Components[I] is tedit ) then(Components[I] as tedit).enabled:=false;end;for i:=0 to ComponentCount-1 dobeginif (Components[I] is tbitbtn ) then(Components[I] as tbitbtn).enabled:=false;cmd_new.Enabled :=true;cmd_exit.Enabled :=true;end;end;end;end四、使用概述树形图(Treeview)是Win95下新增加的通用显示部件(Common Control,在COMCTL32.DLL中)之一,从Delphi2.0开始也增加了相应的控件Treeview,用于取代原Outline控件。

TreeView属性说明(5篇模版)

TreeView属性说明(5篇模版)

TreeView属性说明(5篇模版)第一篇:TreeView属性说明TreeView组件是由多个类来定义的,TreeView组件是由命名空间“System.视窗系统.Forms”中的“TreeView”类来定义的,而其中的节点(即Node),是由命名空间“System.视窗系统.Forms”中的“TreeNode”来定义的。

所以当在程式中创建一个TreeView对象,其实只是创建了一个能放置节点的“容器”。

而在这个容器中加入一个节点,其实就是加入了从“TreeNode”类中创建的一个节点对象;同样删除一个节点,也就是删除一个“TreeNode”节点对象。

一.本文中介绍的程式设计及运行环境(1).微软视窗2000 服务器版(2) Framework SDK 正式版二. C#操作TreeView组件中的一些常用方法及具体实现:TreeView组件虽然是个操作起来比较麻烦的组件,但归根到底,能总结为三种基本操作:加入子节点、加入兄弟节点和删除节点。

掌控了这三种常用操作,对于在编程中灵活运用TreeView组件是十分必要的。

下面就分别来加以介绍。

(1).加入子节点:所谓子节点,就是处于选定节点的下一级节点。

加入子节点的具体过程是:首先要在TreeView组件中定位要加入的子节点的位置,然后创建一个节点对象,然后利用TreeVeiw类中对节点的加入方法(即:Add()方法),加入此节点对象。

下面就是在treeView1组件中加入一个子节点的具体代码://首先判断是否选定组件中的位置if(treeView1.SelectedNode == null){ MessageBox.Show(“请选择一个节点” , “提示信息” , MessageBoxButtons.OK , rmation);} else { //创建一个节点对象,并初始化TreeNode tmp;tmp = new TreeNode(“节点名称”);//在TreeView组件中加入子节点treeView1.SelectedNode.Nodes.Add(tmp);treeView1.Selecte dNode = tmp;treeView1.ExpandAll();}(2).加入兄弟节点:所谓兄弟节点,就是在选定的节点的平级的节点。

vba treeview用法

vba treeview用法

VBA Treeview:发挥它的功能和价值近年来,VBA(Visual Basic for Applications)作为一种方便、强大的编程语言,越来越受到人们的重视。

在VBA中,Treeview控件是一个非常实用的工具,它可以帮助用户更好地组织和显示数据,提高工作效率。

在本文中,我将以VBA Treeview为主题,探讨其用法、功能和价值。

1. VBA Treeview简介VBA Treeview控件是一种树形结构的控件,通常用于在Windows窗体中显示层次化的数据,比如文件目录、组织结构、分类列表等。

它具有展开和折叠节点的功能,能够清晰地展示数据之间的层次关系,使得用户可以更直观地进行数据查看和操作。

2. VBA Treeview的基本用法在VBA中使用Treeview控件,需要先在工具箱中引入Microsoft Windows Common Controls 6.0库,然后将Treeview控件添加到用户窗体中。

就可以通过VBA代码来动态添加节点、设置节点属性和响应用户操作等。

可以使用Add方法添加根节点和子节点,使用Text、Key、Tag属性设置节点文本、关键字和标签,使用NodeClick事件响应节点被点击等。

3. VBA Treeview的高级功能除了基本的节点操作外,VBA Treeview还支持许多高级的功能,比如节点的拖拽和放置、自定义节点样式、节点的勾选和取消勾选等。

这些功能使得VBA Treeview更加灵活和强大,能够满足各种复杂的数据展示和交互需求。

4. VBA Treeview的应用场景VBA Treeview控件广泛应用于各种领域,比如金融行业的组织机构显示、教育行业的课程结构展示、软件开发中的功能模块导航等。

它可以帮助用户清晰地理解和处理复杂的数据,提高工作效率和用户体验。

5. 个人观点和总结在我看来,VBA Treeview是一个非常有用的工具,它能够帮助用户更好地组织和展示数据,提高工作效率和信息理解能力。

winform treeview用法

winform treeview用法

winform treeview用法WinForms中的TreeView控件用于显示树形结构的数据。

以下是TreeView控件的常用用法:1. 添加根节点:```csharpTreeNode rootNode = new TreeNode("Root");treeView.Nodes.Add(rootNode);```2. 添加子节点:```csharpTreeNode childNode1 = new TreeNode("Child 1");rootNode.Nodes.Add(childNode1);TreeNode childNode2 = new TreeNode("Child 2");rootNode.Nodes.Add(childNode2);```3. 设置节点的图标:```csharpchildNode1.ImageKey = "icon.png"; // 设置节点图标的键childNode1.SelectedImageKey = "selected_icon.png"; // 设置选中节点图标的键```4. 展开和折叠节点:```csharp// 展开节点rootNode.Expand();// 折叠节点rootNode.Collapse();```5. 处理节点选择事件:```csharptreeView.AfterSelect += TreeView_AfterSelect; private void TreeView_AfterSelect(object sender, TreeViewEventArgs e){TreeNode selectedNode = e.Node;// 处理所选节点的操作}```6. 获取所选节点:```csharpTreeNode selectedNode = treeView.SelectedNode; ```7. 删除节点:```csharptreeView.Nodes.Remove(selectedNode);```这些是TreeView控件的基本用法,还有许多其他属性和方法可用于自定义控件的外观和行为。

TreeView用法小结

TreeView用法小结

TreeView用法小结1.什么是TreeView?TreeView 是一个 服务器控件,可以生成用于显示分层数据的用户界面2.适用的数据结构:适用分层的数据集、文件夹视图以及其他类似的数据结构。

3.如何实现TreeView?(1)通过声明的方式创建(2)客户端或服务器上通过编程以多种方式来实现4.TreeView创建方法:(1)手动创建(2) 使用中的TreeView Editor创建5.TreeView元素TreeView 定义一个TreeViewTreeNodeType 定义一个节点类型,适用TreeView中的一个或一组节点TreeNode 在TreeView中创建一个节点注:TreeView是TreeNode和TreeNodeType的容器这些元素共同定义了数视图的结构、布局、外观。

TreeView不能包含这三种元素之外的任何HTML元素6.编写简单的TreeView(1).创建一个web application,命名为:webcontrols(2).创建一个空页面(3).添加命名空间引用,即添加“<%@ import namespace="Microsoft.Web.UI.WebControls" %>”(4).添加@ Register 指令即添加:<%@ Register TagPrefix="mytree"Namespace="Microsoft.Web.UI.WebControls"Assembly="Microsoft.Web.UI.WebControls,Version=1.0.2.226,Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>(5). 添加文档结构<HTML><HEAD></HEAD><BODY></BODY></HTML>(6).添加form所有WebControl 元素必须在一个FORM 元素中建立<BODY><FORM runat="server"></FORM></BODY>(7). 添加一个TreeView 元素。

JavaScript对TreeView的操作总结

JavaScript对TreeView的操作总结
ss=s.split(",")
if(ss[0]=="")
{
alert("在进行'修改'操作之前请进行选择!");
return false;
}
if(ss.length>1)
{
alert("在进行'修改'操作时只能选择一项!");
return false;
{
return;
}
else
{
for(i=0;i<ChildNode.length;i++)
{
var cNode;
cNode=ChildNode[i];
if(parseInt(cNode.getChildren().length)!=0)
{
return;
}
}
//如一个结点下的所有结点均未选中,则其父结点处于未选中状态
function UnCheck(node,Pc)
{
if(Pc==false)
{
if(node.getParent())
{
cNode=node.getParent();
}
}
//进行删除时的验证
function Check_dele()
{
var s;
var ss;
s=Form1.NodeState.value;
ss=s.split(",")
if(ss[0]=="")
{
alert("在进行'删除'操作之前请进行选择!");

vb.net treeview的用法

vb.net treeview的用法

TreeView的用法1. 简介中的TreeView是一种常见的控件,用于显示层级结构数据,例如文件夹和文件的结构、组织结构等。

它可以帮助用户更清晰地理解数据之间的关系,并提供交互式的展开和折叠功能。

2. 基本用法在中使用TreeView控件非常简单。

我们需要在窗体中添加一个TreeView控件,然后可以通过编程的方式添加节点和子节点。

每个节点都可以包含文本、图标和其他自定义内容。

3. 节点的操作通过TreeView控件,我们可以对节点进行多种操作,包括添加、删除、展开和折叠等。

这样用户可以根据需要动态地构建和修改树形结构,使得数据的呈现更加灵活和可控。

4. 事件处理TreeView控件提供了丰富的事件,允许我们在节点被选择、展开、折叠等操作时进行相应的处理。

通过事件处理,我们可以实现一些交互逻辑,例如在节点展开时加载子节点的数据。

5. 数据绑定除了手动添加节点,TreeView控件还支持数据绑定的方式。

这样我们可以通过绑定数据源的方式,自动构建树形结构,减少了大量的编码工作。

6. 深入理解了解了TreeView控件的基本用法之后,我们可以深入探讨一些高级的用法,例如节点的拖拽、自定义节点样式、节点的数据绑定和使用等。

总结:通过本文的介绍,我们对中TreeView控件的基本用法有了初步的了解。

TreeView控件可以帮助我们清晰地展现层级结构数据,并提供丰富的操作和事件处理功能,使得数据的展示和交互更加灵活和可控。

希望读者可以通过本文的介绍,更加深入地理解和应用TreeView控件。

个人观点:在实际开发中,TreeView控件是一种非常常用且强大的控件,可以帮助我们解决很多展示层级结构数据的问题。

通过合理的设计和使用,TreeView控件可以极大地提高用户体验和数据展示的效果。

我个人认为,熟练掌握TreeView控件的用法对于开发者来说是非常有必要的。

以上就是我对 TreeView的用法的介绍,希望对你有所帮助。

treeview控件用法(一)

treeview控件用法(一)

treeview控件用法(一)TreeView控件用法详解1. 概述TreeView控件是一种常用的用户界面控件,常用于显示层次结构的数据。

它通常用于文件资源管理器、目录结构显示等场景中。

下面详细介绍TreeView控件的一些常见用法和功能。

2. 树状结构显示•树状结构:TreeView控件以树状结构的方式来显示数据,每个节点可以有多个子节点,形成层次结构。

•节点展开和折叠:用户可以通过点击节点前的加号(+)或减号(-)图标,展开或折叠节点的子节点。

•树节点图标:每个树节点都可以设置一个图标显示在节点前面,用于表示不同类型的节点。

3. 构建树•添加根节点:通过调用TreeView控件的()方法,可以在Treeview的根节点下添加子节点。

•添加子节点:通过设置节点的Nodes属性,添加子节点到指定的父节点。

4. 节点操作•插入节点:使用()方法可以在指定位置上插入一个新节点。

•删除节点:使用()方法可以删除指定节点,同时会删除节点的所有子节点。

•修改节点:通过修改节点的Text属性,可以修改节点的文本内容。

5. 节点选择和展示•选择节点:通过设置TreeView控件的SelectedNode属性,可以选中指定的节点。

•展示节点:可以通过设置节点的EnsureVisible属性,使指定节点可见(自动滚动到可见状态)。

6. 节点事件•节点点击事件:可以通过绑定TreeView控件的NodeMouseClick事件,实现对节点的点击响应。

•节点展开折叠事件:通过绑定TreeView控件的BeforeExpand 和BeforeCollapse事件,实现对节点展开和折叠的响应。

7. 其他功能•勾选框:可以通过设置节点的CheckBoxes属性为true,启用节点的勾选框功能。

•拖拽操作:可以通过设置TreeView控件的AllowDrop属性为true,实现节点的拖拽和放置操作。

8. 总结TreeView控件是一种非常实用的界面控件,它提供了树状结构的显示方式,并提供了丰富的操作和事件,能够满足复杂的层次结构数据展示需求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

可以通过编程或使用 TreeView 的属性将 C# 脚本中的函数加入到事件中,如下所示:
<mytree:treeview
onexpand="Expand"
oncollapse="Collapse"
onselectedindexchanged="SelectChange"
<treenode Text="From vb to "/>
<treenode Text="Dotnet with "/>
</treenode>
</TREENODES>
8.用 XML 和 SQL Server 进行数据绑定
</booktree:treenode>
</booktree:treeview>
book.xml 文件包含以下内容:
<TREENODES>
<treenode Text="CSharp">
<treenode Text="Deep inside Csharp"/>
服务器端包含
由于 WebControls 是用 建立的,所以也支持服务器端“包含”。下面的示例显示了其实现方法。
<mytree:treeview runat="server">
<!-- #Include file="nodes.txt" -->
</mytree:treeview>
(8). 向 TreeView 添加一个 TreeNode。
<mytree:treeview runat="server">
<mytree:treenode text="节点一">
</mytree:treenode>
</mytree:treeview>
{
mylabel.InnerText += "已折叠 (节点索引= " + e.Node.ToString() + ")";
}
void SelectChange(Object sender, TreeViewSelectEventArgs e)
{
mylabel.InnerText += "已选中 " + e.NewNode.ToString() + " (旧节点
TreeView 事件
通过将 AutoPostBack 属性设置为 true 可以将用户交互产生的事件导向服务器。同时处理高级浏览器和低级浏览器事件时应该使用服务器端脚本,因为低级页面内容中没有使用 Internet Explorer 5.5 或更高版本中所使用的丰富的 DHTML 行为。
即添加:
<%@ Register TagPrefix="mytree"
Namespace="Microsoft.Web.UI.WebControls"
Assembly="Microsoft.Web.UI.WebControls,Version=1.0.2.226,Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
对于包含 TreeView 的 Web 页面,用户的主要交互是展开和折叠树中的节点来浏览内容。下面的示例代码显示了如何使用 C# 在 Web 窗体中处理 onexpand、oncollapse 和 onselectedindexchange 事件。
<script language="C#" runat="server">
5.找不到TreeNode类
使用TreeView,最好添加namespace:using Microsoft.Web.UI.WebControls;
6.遍历TreeView节点(递归算法)
private void Page_Load(object sender, System.EventArgs e)
<booktree:treeview runat="server" AutoPostBack="true">
<booktree:treenode Text="book" AutoPostBack=true "
Expanded="true" TreeNodeSrc="http:// EventArgs/webcontrols/treeview/book.xml">
补充:
1.下载地址
/downloads/samples/internet/ASP_DOT_NET_ServerControls/WebControls/default.asp
安装后,通过“自定义工具箱”->“.net框架组件”把TreeView添加到工具箱里
TreeNode 在TreeView中创建一个节点
注:
TreeView是TreeNode和TreeNodeType的容器
这些元素共同定义了数视图的结构、布局、 外
观。TreeView不能包含这三种元素之外的任何
HTML元素
6.编写简单的 TreeView
WebControls 元素也可以使用其他 XML 数据提供程序,如下所示:
<ie:treenode Text="root" type="tree" Expanded="true"
TreeNodeSrc="http://EventArgs/mySQLXML?sql=execute+sp_bookXML+@pid=1" />
(1).创建一个web application,命名为:webcontrols
(2).创建一个空页面
(3).添加命名空间引用,即添加 “<%@ import namespace="Microsoft.Web.UI.WebControls" %>”
(4).添加@ Register 指令
autopostback="true"
runat="server">
</mytree:treeview>
进行 TreeView 编程时经常要使用 onexpand 和 oncollapse 事件。在本示例中,每次节点展开或折叠时,脚本都将添加到 div 元素的 innerText 中。
(2)客户端或服务器上通过编程以多种方式来实现
4.TreeView创建方法:
(1)手动创建
(2) 使用中的 TreeView Editor创建
5.TreeView元素
TreeView 定义一个TreeView
TreeNodeType 定义一个节点类型,适用TreeView中的一个或一组节点
(5). 添加文档结构
<HTML>
<HEAD></HEAD>
<BODY></BODY>
</HTML>
(6).添加forቤተ መጻሕፍቲ ባይዱ
所有 WebControl 元素必须在一个 FORM 元素中建立
<BODY>
<FORM runat="server"></FORM>
<!-- #Include file="Books.txt" -->
</mytree:treenode>
<mytree:treenode Text="杂志" >
<!-- #Include file="magazines.txt" -->
</BODY>
(7). 添加一个 TreeView 元素。
<BODY>
<FORM runat="server">
<mytree:treeview runat="server"></mytree:treeview>
</FORM>
</BODY>
(9). 添加第二个 TreeNode。
<mytree:treeview runat="server">
<mytree:treenode text="节点一">
<mytree:treenode text="节点二">
</mytree:treenode>
索引=" + e.OldNode.ToString()+")" ;
}
</script>
在此脚本中,需要具有一个 id 为 _label 的元素。
<div id=_label runat="server">Event Log: </div>
注意:此标记必须放在 TreeView 使用的 FORM 元素内。
相关文档
最新文档