treeview控件怎么用(怎样使用TREEVIEW控件)
本文目录
- 怎样使用TREEVIEW控件
- TreeView1控件如何用
- asp.net中TreeView控件是怎样使用的
- C#中的Treeview控件如何使用
- 在.NET开发中灵活使用TreeView控件
- vb中的treeview控件如何使用
- 怎样使用C#TreeView控件
怎样使用TREEVIEW控件
在进行VFP程序开发时,为了让我们的应用程序看起来更加专业化,我们不可避免地要在设计过程中为程序添加一些专业的控件。工欲善其事必先利其器,在进行程序设计时对所用的控件必须有一个清晰的了解。本文要向大家介绍的就是TreeView控件。TreeView控件能够以一种树形目录的方式来显示各种资料,常见的TreeView控件使用的例子就是注册表器和Windows的资源管理器,单击节点的+号,你可以展开该节点,同样你也可以关闭所展开的节点。如何在你的程序中加入TreeView控件?接下来以VFP为例,向大家介绍TreeView控件的使用方法。一、在表单中添加TreeView控件TreeView控件属于OLE控件。所以,在VFP中添加TreeView控件的方法是在表单中加入OLE容器控件,在出现了InsertObject标题之后,选择InsertControl,在ObjectType栏内选择MicrosoftTreeViewControl。之后,在表单上你就能看到TreeView控件了。二、在TreeView控件中加入节点往TreeView控件中加入节点是一项很关键的工作。使用TreeView控件中Node(节点)对象的Add方法,你便能够定制由TreeView控件显示的内容(节点内容)。Add的用法如下:Add(relative,relationship,key,text,image,selectedimage)各个参数的含义如下:Relative:参照节点的键值。往TreeView控件加入节点时,你能够决定所添加的节点与业已存在的节点之间的关系。relative参数的作用就是指明已存在的节点的名称(键值)。Relationship:指明欲加入的节点与业已存在的节点之间的关系。其可选值及具体含义如下:0:顶级节点,新添的节点放置在参照节点的最上面。1:末级节点,新添的节点放置在参照节点的最下面。2:次级节点,新添的节点紧跟参照节点。3:上级节点,新添的节点放在参照节点的上面。4:子节点,新添的节点为参照节点的子节点。需要说明的是,描述上述参数使用到的顶、末、次、上具体是指物理位置上的关系。并且,新添加的节点的存放位置与申明语句的先后位置无关。Key:新添加节点的键值(字符串类型),该键值必须是唯一的。Text:所添加节点的标题。Image和selectedimage:图像索引值。可选参数(N型),指明新添加的节点在选中与没选中时所显示的不同图像。通常,这些图像是存放在ImageList(用来存放图片的)控件中的。在TreeView控件中你可以设置该控件的ImageList值。三、对TreeView控件的常用操作1.添加节点:添加节点的操作主要是由上面提到的Add函数完成的。由TreeView控件中每个被显示的目录项被称之为节点(Node),应该注意的是:在添加过程中,你操作的对象是节点,而非TreeView控件本身。所以你不能直接使用TreeView.add命令。2.删除节点:删除节点主要是使用Remove函数,该函数的用法如下:Nodes.Remove(Key),Key指明欲删除节点的键值。3.指明对TreeView控件事件响应程序:在设计好TreeView之后,指明对事件如何响应是必不可少的。通常,最常用的是针对Click、DblClick和NodeClick事件,在设计此类事件的响应程序时,很自然地要涉及到确认用户所选择的节点。上面提到了,在对TreeView进行操作时,实际上是在对Node对象进行操作。Node对象中实际上是与之有关的各种数据(如:节点的Key值、Text值、Image值等等)和函数的结合体。通过对Node对象进行存取操作,一切都变得那么容易了。四、实战演习上面说了那么多,还是亲自动动手吧。下面的例子可以让你对TreeView控件有更加清晰地认识。这些程序并不复杂,但却演示了TreeView控件的基本原理及常用的操作。1.在TreeView控件的Init事件中添加如下代码,这些语句能够让你了解TreeView控件中节点与节点之间的关系:this.nodes.add(,,TOP,参照目录项)this.nodes.add(TOP,0,TopOnTop,参数0:放在参照目录项的最上面)this.nodes.add(TOP,1,TOP1,参数1:放在参照目录项的最下面)this.nodes.add(TOP,2,TOP2,参数2:紧靠参照目录)this.nodes.add(TOP,3,TOP3,参数3:放在参照目录的上面)this.nodes.add(TOP,4,Child?of?TOP,参数4:参照目录的子目录)this.nodes.add(Child?of?TOP,4,GrandSon?of?
TreeView1控件如何用
msdn:使用 TreeView 控件TreeView 控件可以用来显示具有层次结构的数据,例如组织树、索引项、磁盘中的文件和目录等。图 2.40 典型的 TreeView可能的用途创建用户可以操作的组织树。创建能够显示至少两层或更多层的数据库树。设置 Node 对象属性“树”由一些层叠的“节点”分支构成,每个节点通常包括图象(用 Image 属性设置)和标签(由 Text 属性设置)。节点的图象由与 TreeView 控件相关联的 ImageList 控件提供。关于与其它控件共同使用 ImageList 控件的更多信息,请参阅“使用 ImageList 控件”。节点可被展开或折回,这取决于它是否有子节点,即从它出发的节点。在最上层是“根”节点,每个“根”节点可以具有任何数目的子节点。节点的总数没有限制(除非受到机器资源的限制)。图 2.41 显示了具有两个根节点的树。其中“Root 1”有三个子节点,“Child 3”自己又有一个子节点。“Root 2”有子节点,由“+”号指出,但没有展开。图 2.41 根和子节点树中的每个节点实际上是可编程的 Node 对象,它属于 Nodes 集合。同在其它集合中一样,集合的每个成员具有唯一的 Index 和 Key 属性,通过这些属性可以访问相应节点的其它属性。例如,下面的代码用特定节点的 Index (“7”) 设置其 Image 和 Text 属性:tvwMyTree.Nodes(7).Image = "closed" tvwMyTree.Nodes(7).Text = "IEEE"然而,如果唯一的键被赋给了该节点,例如“7 ID”,那么上述代码可被改写如下:tvwMyTree.Nodes("7 ID").Image = "closed"tvwMyTree.Nodes("7 ID").Text = "IEEE"节点间的关系和对关系节点的引用每个节点可以是子节点,也可以是父节点,这取决于它与其它节点之间的关系。Node 对象具有一些属性,可以用来返回子节点或父节点的各种信息。例如,下面的代码用 Children 属性返回某个节点的子节点个数。MsgBox tvwMyTree.Nodes(10).Children然而,另外一些属性与 Children 属性不同,它们不返回信息,但返回对其它节点对象的引用。例如,Parent 属性返回对特定节点(只要该节点不是根节点)的父节点的引用。利用该引用,可以调用适用于 Node 对象的任何方法或设置属性来管理其父节点。例如,下面的代码返回父节点的 Text 和 Index 属性:MsgBox tvwMyTree.Nodes(10).Parent.TextMsgBox tvwMyTree.Nodes(10).Parent.Index提示使用 Set 语句处理Node 类型的对象,以管理对其它 Node 对象的引用。例如,下面的代码将Node 对象变量设置为 Parent属性返回的引用。然后用该对象变量返回相关节点的属性:Dim tempNode As Node ’声明对象变量。’将对象变量设置为返回的引用。Set tempNode = tvwMyTree.Nodes(10).ParentMsgBox tempNode.Text ’返回父节点的Text。MsgBox tempNode.Index ’返回父节点的Index。向 Nodes 集合中添加 Node 对象要将 Node 添加到树中,可以用 Add 方法(Nodes 集合)。该方法包括两个参数,relative和relationship,它们确定节点被加到何处。第一个参数relative指定节点名称,第二个参数relationship指定新加入的节点与名为relative的节点之间的关系。例如,下面的代码添加名为“11 node”的节点,并使其成为名为“7 node”的节点的子节点。固有常数 tvwChild 指出新节点是前一参数所指定的节点的子节点。第三个参数设置新节点的 Key 属性。tvwMyTree.Nodes.Add "7 node", tvwChild, "11 node"其它可能的关系包括:常数 值 描述 tvwLast 1 该 Node 被放在所有与relative节点同级的节点之后。 tvwNext 2 该 Node 放在名为relative的节点之后。 tvwPrevious 3 该 Node 放在名为relative的节点之前。 tvwChild 4 该 Node 成为名为relative节点的子节点。 例如,假设已存在三个节点,如果想将第四个节点放在第二个和第三个节点之间,则代码如下:’假设第二个节点的Key值为“2 node”。tvwMyTree.Nodes.Add "2 node", tvwNextAdd 方法的其它参数是key、text和image。用这些参数,可以在创建 Node 对象时,为其赋予 Key、Text 和 Image 属性。详细信息关于 Nodes 集合 Add 方法的更多信息,请在索引搜索中键入“Add 方法”并单击“Add 方法 (Nodes 集合)”,参阅“Add 方法”。添加节点的第二个方法是:声明 Node 类型的对象变量,然后使用带 Add 方法的 Set 语句。该 Set 语句将该对象变量设置为新节点。然后就可以用该对象变量设置节点的属性,如下所示:Dim nodX As NodeSet nodX = tvwMyTree.Nodes.Add("10 node", tvwChild)nodX.Key = "11 node"nodX.Text = "IEEE"nodX.Image = "closed"提示使用带 Add 的 Set 语句,可使代码可读性强、容易调试。然而,如果使用 Add 方法及其参数添加节点,代码速度更快。
asp.net中TreeView控件是怎样使用的
添加静态节点如图所示。
添加动态节点如下:
#region 动态添加节点
protected void CreateTreeNode(int roleId)
{
//创建一个集合,用于存放角色所能访问的URL
List《string》 urlList = new List《string》();
//清空所有节点
TreeView1.Nodes.Clear();
//数据库中读出父节点名字
IList《R_UserRight》 nodes = biz.GetParentRoleRightByUserRole(roleId);//读取数据库父节点的方法
//循环父节点
foreach (R_UserRight right in nodes)
{
//新建父节点
TreeNode node = new TreeNode();
//赋值父节点节点的文本
node.Text = right.ColumnList.ColumnName;
//根据父节点的Id查询所有的子节点
IList《R_UserRight》 childNodes = biz.GetChildRoleRightByParentNode(roleId, right.ColumnList.ColumnId);//根据父节点的Id读取子节点的方法
//循环子节点
foreach (R_UserRight childRight in childNodes)
{
//新建子节点
TreeNode childNode = new TreeNode();
//赋值子节点节点的文本
childNode.Text = childRight.ColumnList.ColumnName;
//赋值子节点节点的链接地址
childNode.NavigateUrl = childRight.ColumnList.ColumnURL;
//子节点前的图片路径,如果想自定义treeview样式的时候,可是这么设置节点前的图片
//childNode.ImageUrl = "../img/CloseTree.gif";
//子节点加入到对应的父节点中
node.ChildNodes.Add(childNode);
}
//父节点加入到treeview
TreeView1.Nodes.Add(node);
}
}
#endregion
C#中的Treeview控件如何使用
首先在treeview选择事件afterSelect双击在写代码//简单写两个其他的都一样 private void treeView3_AfterSelect(object sender, TreeViewEventArgs e) { string a=treeView3.SelectedNode.Text; switch (a) { case "信息工程系": SqlConnection con = new SqlConnection("server=.;database=student;trusted_connection=sspi"); SqlCommand cm = new SqlCommand(); cm.Connection = con; cm.CommandText = "select * from studentInfo where ximing=’xinxigongcheng’" ; con.Open(); SqlDataReader dr; dr = cm.ExecuteReader(); dr.Read(); label9.Text = dr.GetDouble(0).ToString(); label10.Text = dr.GetString(1); label11.Text = dr.GetString(2); label12.Text = dr.GetString(3); label13.Text = dr.GetString(4); label14.Text = dr.GetDateTime(5).ToString(); label15.Text = dr.GetString(6); dr.Close(); con.Close();break; case "信息工程系": SqlConnection con1 = new SqlConnection("server=.;database=student;trusted_connection=sspi"); SqlCommand cm1 = new SqlCommand(); cm1.Connection = con1; cm1.CommandText = "select * from studentInfo where ximing=’dianzigongcheng’" ; con.Open(); SqlDataReader dr1; dr1 = cm1.ExecuteReader(); dr1.Read(); label9.Text = dr1.GetDouble(0).ToString(); label10.Text = dr1.GetString(1); label11.Text = dr1.GetString(2); label12.Text = dr1.GetString(3); label13.Text = dr1.GetString(4); label14.Text = dr1.GetDateTime(5).ToString(); label15.Text = dr1.GetString(6); dr1.Close(); con1.Close();break; } }
在.NET开发中灵活使用TreeView控件
ASP NET真正有用的特性就是其可扩充性 世界各地的开发人员都可以创建自己的自定义控件 这种自定义控件可以方便地在你自己的过程中进行定义 其中 Internet Explorer Web Controls就是由微软公司在标准的ASP NET控件之外创建的这样一个集合
Windows资源管理器中的驱动器和其下的文件及文件夹就是按照一种层次结构来安排的 在这个控件集中有一个treeview控件为我们提供了一种按层次结构显示信息的方式 treeview控件包含了称做“节点”(node)的一些条目的一个列表 每一个节点都可以有自己的节点集合 从而提供了一种更深层的数据定义 每个节点都可以被折叠起来 从而允许访问者在一个treeview控件中查找 只看他所感兴趣的那一级的数据 就像Windows的资源管理器一样
首先得明确一点就是测试的环境 只要环境正确 接下来的工作就很轻松了
要测试该控件 得有一个叫IE WebControls的文件 具体的文件可以点击这里下载或到微软的网站去下载
按照他提供的方法进行安装 如有不清楚 请仔细看清楚他的readme文档
这里跳过下载方法 直接进入环境的配置
IE Web Controls
双击安装完成 默认:系统盘:program filesIE Web Controls目录下
运行“程序——Microsoft Visual Studio NET ——Visual Studio NET 工具 ——Microsoft Visual Studio NET 命令提示符” 进入到IE Web Control 安装目录
运行build bat
运行xcopy /s /i buildRuntime (网站根目录 默认系统盘):Inetpubrooebctrl_client _ /y
在”工具箱——web窗体“单击右键 选择“添加/移除项 ” 在弹出对话框中选择 net framwork 组件 单击“浏览” 找到IE WebControl dll 文件 添加上即可
这样就配置好了运行环境 接下来进行实操作阶段了
一 定义TreeView控件
代码拷贝框
导入名称空间 <%@ import namespace="Microsoft web UI webcontros"%> 注册这个名称空间并为其给定一个TagPrefix 以便于对这个控件库中的控件进行定义 <%@ register tagprefix = "iecontrols" namespace="Microsoft web UI webcontrols" assembly="microsoft web UI webcontrols" %> 设置好指令后 就可以定义下面这样的一个treeview控件了 <iecontrols:treeview id="tvbasic" autoselect="false" shoplus="true" showlines="true" expandlevel= runat="server" > </idcontrols:treeview>
下面来解释一下相应代码:
autoselect = "false"
当访问者在TreeView控件中对节点进行定位时 可以使用键盘上的箭头来进行这种定位 当这个TreeView控件的autoselect属性值设为TRUE时 可以使用键盘上的键来在treeview控件中滚动 以选聂一个条目 如果设置为false的话 则不允许这样做
showplus="true"
当一个treeview控件中的两个节点收到一起的时候 你可以显示一个加号(+) 访问者就知道这个节点可以展开 通过设置showplus属性 你可以控制在这个位置是否显示加号 如果这个属性值设为true将使用加号;否则不使用
showlines="true"
在一个treeview控件中的两个节点之间 可以显示一些线条 通过设置showlines属性 你可以控制是否显示这样的线条
Expandlevel=
这个Treeview控件的Expandlevel属性用来确定在默认的情况下 沿着这个treeview控件的层次结构展开的级别数
<iecontrols:treeview> </iecontrols:treeview>
在这个treeview控件定义的开始和结束标记之间 可以定义一些treenode控件
二 在treeview控件中使用treenode控件
如果你创建一个treeview控件的话 就需要在其中添加一些treenode控件来显示一些信息 treenode控件显示为treeview控件的层次结构中的一个项 treenode控件可以包含了treeview控件;或者 该控件本身也可以独立存在 下面将向你展示如何在一个treeview控件中定义treenode控件
本实例将显示我喜欢的一些网站 其中每个网站可以是一个独立的 或者在其下还有其它网站 这个treeview控件具有如下定义:
代码拷贝框
<iecontrols:treeview id="tvwebsite" autoselect ="false" showplus="true" showlines="true" expandlevel= runat = "server" > 接下来在treeview控件的开始和结束标记中 定义treenode控件 <iecontrols:treenode text="我常去的站点"> <idcontrols:treenode text="设计类站点"> <idcontrols:treenode text="蓝色理想" /> <idcontrols:treenode text="有风的日子" /> <idcontrols:treenode text="设计联盟" /> </iecontrols:treenode> <iecontrols:treenode text="编程类站点"> <iecontrols:treenode text="ASP编程"> <iecontrols:treenode text="ASP COOL" /> <iecontrols:treenode text=""/> </iecontrols:treenode> <iecontrols:treenode text="ASP NET编程"> <iecontrols:treenode text="Dotnet技术网" /> <iecontrols:treenode text="asp net"/> </iecontrols:treenode> <iecontrols:treenode text="程序员大本营" /> </iecontrols:treenode> </iecontrols:treenode>
其中 定义了一个两级的节点 这个树状视图中包含了"设计类站点"和"编程类站点"这二个大节点 而"编程类站点"中又有两个子节点"ASP编程"和"asp net编程" 其中每个子节点又都定义了其他的节点
要注意包含其他节点的treenode控件和独立的treenode控件之间的差别 当一个treenode控件中还有其它treenode控件时 这些子控件在其父控件的开始和结束标记之间进行定义:
<iecontrols:treenode text=""> </iecontrols:treenode>
但对于一个独立的treenode控件来说 其开始和结束标记是自包含的:
<iecontrols:treenode text="" />
当页面首次加载时 这就是整个视图节点的展开情况 由于这里的expandlevel属性值设为 因此将显示到所有级别上的节点 此外还要注意的是 由于showlines属性和showplus属性都为true 因此在所有显示的这个视图中 连接节点间的线条和连接框都显示出来
lishixinzhi/Article/program/net/201311/14346
vb中的treeview控件如何使用
使用控件需要知道,要想获得树状结构的每个层次中的子文件夹,必须使用递归过程来完成,下面所示代码所执行的工作是:先把一个已经路径的文件夹添加到树状结构中,然后再遍历它的子文件夹:’添加文件夹Public Sub AddDirectory(ByVal strFatherPath As String, ByVal strPath As String, ByVal nodeFather As TreeNode)Dim i As IntegerDim node As New TreeNode’先添加本目录,从文件夹路径分析出文件夹名称node.Text = Strings.Replace(strPath, strFatherPath & "\", "", , 1)’为单个节点指定节点未被选中时显示的图标node.ImageIndex = 1’为单个节点指定节点被选中时显示的图标node.SelectedImageIndex = 2nodeFather.Nodes.Add(node)Application.DoEvents()TryDim str() As String = iDir.GetDirectories(strPath)’遍历该目录的子文件夹For i = 0 To str.GetUpperBound(0)AddDirectory(strPath, str(i), node)NextCatch ex As ExceptionDebug.WriteLine(ex.Message)End Trynode = NothingEnd Sub然后在按钮的Click事件中添加代码,用于添加树状结构的顶层以及调用遍历子文件的递归过程,详细代码如下:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDim node As New TreeNode’先把C盘添加到树中TreeView1.Nodes.Clear()node.ImageIndex = 0node.Text = "本地磁盘 C:"node.SelectedImageIndex = -1TreeView1.Nodes.Add(node)Dim i As Integer’获取C:盘根目录下的文件夹Dim str() As String = iDir.GetDirectories("C:\")For i = 0 To str.GetUpperBound(0)’调用遍历过程AddDirectory("C:", str(i), node)Nextnode = NothingEnd Sub
怎样使用C#TreeView控件
方法/步骤1打开Microsoft Visual Studio 2010, 新建名字为【treeView】的程序。2在界面上添加【treeView】的控件,并调整为合适大小。3在程序界面上加入其它需要的控件:包括,用于输入父节点个数和子节点个数的2个输入框;生成节点的按钮、删除节点的按钮、清除所有节点的按钮;输出日志信息的文本框。4代码,输入【生成节点】的代码;获取子节点和父节点的个数,使用循环添加父节点和子节点。5【清除所有节点】的代码。6【删除所选节点】的代码。7点击【treeview】控件,在属性中选择行为,从行为列表中选择【afterselect】双击,在代码页面,添加节点被选择后的代码。8输出日志的output方法的代码。9生成exe文件进行测试10输入父节点和子节点数量分别为2和4,生成树结构。确认生成成功。11点击【清除所有节点】,可以看到所有节点都已经被清空。12输入父节点和子节点数量分别为3和3,生成树结构。确认生成成功。13点击【父节点3】的【子节点2】,点击【删除节点】。14可以看到该子节点已经被清空。再点击【父节点2】。15点击【删除节点】,可以看到该父节点已经被清空。16点击各个节点时,可以看到日志中输入对应的节点信息。***隐藏网址***
更多文章:
海尔洗衣机报错error(海尔滚筒洗衣机显示Err2是什么问题)
2024年7月5日 11:31
html5加css实例(css3代码怎么应用到html5中)
2024年7月20日 13:43
cattle是什么意思(raise cattle是什么意思)
2024年7月3日 16:00
dubbo安装部署(解决spring cloud dubbo用nacos作为注册中心应用部署到docker中IP是容器IP的问题)
2024年7月22日 08:54
replyto(reply to sb还是reply sb)
2024年7月8日 06:18
access数据库快速入门(新手如何快速学好Access数据库编程)
2024年5月14日 03:34
spring事务面试题(面试当中问到了:简述spring的事务管理机制我该怎么回答,请高手赐教)
2023年9月21日 14:40