设为首页
给我留言
首页       关于蓬缘    克隆建站    模版建站    建站流程    建站疑虑    支付方式    网站推广    网站优化    建站学院    联系我们    
蓬缘网络技术工作室真心为您服务!霸州网站建设 + 霸州网页设计 + 霸州企业建站 + 霸州FLASH设计 + 霸州网站开发 + 平面设计,专业技术人员一对一服务让建站更加专业更加放心……二十四小时服务热线: 15932615201 13810319167。欢迎来电咨询……霸州网站建设工作室|霸州网站制作|霸州建站|霸州网站改版|霸州企业建站|霸州专业建站|蓬缘网络技术工作室 - 我要网站 - http://www.woyaowangzhan.com……霸州蓬缘网络技术工作室是专业的建站团队,提供专业的霸州建站服务:1、霸州专业网站建设(霸州网站设计)2、霸州网站推广(百度、Google、搜狐、阿里巴巴等)3、霸州网站优化(SEO、百度推广优化)4、霸州域名注册(.com/.cn/.net等)5、霸州虚拟主机(ASP、.net等)6、霸州政府建站7、霸州门户网站…… 现在时间是
建站学堂
 
vb.net中TreeView控件的使用
[ 2008-10-28 8:25:00 ] 作者: 来源:

  核心提示:...

   在vb.net中,TreeView(树型结构)控件是显示节点(Node)对象的级层结构,它通常用于显示一些有等级结构的信息,我们最为熟悉的就是Windows资源管理器左边显示文件和文件夹的窗口。在vb.net工具箱中,TreeView 控件的图标如下图一所示:


 


    TreeView控件的每个节点(Node对象)包含了一个标签和可选的点位图,每个节点又可能包含有若干个的子节点,可以通过控制某个节点来展开显示或者折叠隐藏它所包含的子节点。


一、TreeView 控件的一些常用属性:


    1、CheckBoxes 属性:指示是否在树视图控件中的树节点旁显示复选框。


    2、FullRowSelect 属性:当 FullRowSelect 为 true 时,选择突出显示将跨越树视图的整个宽度,即整个显示区域的宽度而不仅仅是树节点标签的宽度。如果 ShowLines 设置为 true,则将忽略 FullRowSelect 属性。


    3、HideSelection 属性:指示选定的树节点是否即使在树视图已失去焦点时仍会保持突出显示。


    4、HotTracking 属性:如果 HotTracking 属性设置为 true,那么当鼠标指针移过每个树节点标签时,树节点标签都将具有超级链接的外观。Underline 字体样式将应用于 Font 而 ForeColor 将设置为蓝色,从而使标签显示为链接。注意:如果 CheckBoxes 属性设置为 true,HotTracking 属性将失效。


    5、Indent 属性:设置每个子树节点级别的缩进距离(以像素为单位)。


    6、ItemHeight 属性:设置树视图控件中每个树节点的高度。


    7、Nodes 属性:获取分配给树视图控件的树节点集合。这个属性是TreeView 控件最重要的属性之一,我们下文将会对它进行更加的详细的说明。


    8、PathSeparator 属性:树节点路径(TreeNode.FullPath 属性)所使用的分隔符串,默认为反斜杠字符 (\),树节点路径包括一组由 PathSeparator 分隔符串分隔的树节点标签。标签的范围为根树节点到所需的树节点。如下代码我们可以获得当前选中的节点的路径:


    MessageBox.Show(TreeView1.SelectedNode.FullPath)


    9、SelectedNode 属性:获取或设置当前在树视图控件中选定的树节点,如果没有选定任何节点,则 SelectedNode 属性则为Nothing。


    10、ShowLines 属性:指示是否在树视图控件中的树节点之间绘制连线。


    11、ShowPlusMinus 属性:指示是否在包含子树节点的树节点旁显示加号 (+) 和减号 (-) 按钮。


    12、ShowRootLines 属性:指示是否在树视图根处的树节点之间绘制连线。


    如下图二所示,为ShowLines 属性、ShowPlusMinus 属性、ShowRootLines 属性都设置为True的情形:


 



二、为TreeView 控件添加节点


    TreeView 控件的 Nodes 属性包含了它所有的节点,下面我们就来了解如何为树状控件添加节点


    1、通过树节点编辑器添加


    选中TreeView 控件,在它的属性对话框中找到Nodes 属性,然后单击它后面的省略号,弹出“树节点编辑器”,如下图三所示:


 


    然后通过编辑器上的“添加根”来添加根节点,通过“添加子级”来为选中的节点添加子节点,通过“删除”来删除选定的节点,“标签”输入框确定节点的名称,注意,只有设置了TreeView 控件的ImageList 属性才能选择设置节点的图像。


    http://www.qqread.com/book/myvbnet/my0050.html


    2、通过编程方式添加节点


    给TreeView添加结点用到的是“Nodes.Add”方法,首先选定要添加子结点的结点才能应用这个方法。


    TreeView中的结点的组织关系是父结点管理子结点的关系,也就是说,子结点组成的集合就是父结点的“Nodes”属性,子结点的“Index”属性,是根据其在子结点集合中的位置而决定的,而不是整棵树中结点的位置。根据这个特点,若想找到指定结点须按以下的语法:


    TreeViewName.Nodes.Item(Index1).Nodes


    而添加结点的方法为:


    TreeViewName.Nodes.Item(Index1).Nodes.Add("NodeText")


    TreeViewName.Nodes.Item(Index1).Nodes.Add("objNode")


    如下代码所示为选中的节点添加一个子节点:


    TreeView1.SelectedNode.Nodes.Add("www")


    3、编程删除节点


    使用Nodes属性的Remove 方法删除单个节点,也可以使用Clear 方法清除所有的节点,如下代码所示:


    ''删除选定的节点


    TreeView1.Nodes.Remove(TreeView1.SelectedNode)


    ''清除TreeView 控件的所有节点


    TreeView1.Nodes.Clear()


    4、示例演示


    我们现在用一个实例来看如何使用Nodes属性来实现代码编程添加删除树形控件的节点。首先为设计如下图四所示的程序界面,其中有四个Button 控件,一个TreeView 控件:


 



    为“添加根节点”按钮添加如下代码:


    TreeView1.Nodes.Add("根节点" & (TreeView1.GetNodeCount(False) + 1))


    注意:GetNodeCount方法为获得本级别的节点数,可以通过参数False来指定不包括它的子节点


    为“添加子节点”按钮添加如下代码:


    Dim node As TreeNode = TreeView1.SelectedNode


    If Not node Is Nothing Then


    node.Nodes.Add("子节点" & (node.GetNodeCount(False) + 1))


    Else


    MessageBox.Show("没有选中任何节点")


    End If


    注意:TreeNode.GetNodeCount 方法返回的是分配给 Nodes 集合的子树节点的数目。


    为“删除单个节点”按钮添加代码:


    Dim node As TreeNode = TreeView1.SelectedNode


    If node Is Nothing Then


    MessageBox.Show("没有选中任何节点")


    Else


    TreeView1.Nodes.Remove(node)


    End If


    为“删除所有节点”按钮添加代码:


    TreeView1.Nodes.Clear()



    代码添加完毕后,运行程序,分别使用“添加根节点”、“添加子节点”为控件添加节点,如下图五所示:


 


    然后再试验删除节点的效果。


三、访问控件的所有节点


    因为Nodes集合中所包含的只是本级节点的集合,如果某个Node包含有子节点,并不会从当前的Nodes体现出来,如下代码所示,我们只能访问到所有的根节点而不是所有的节点。


    假定我们是在前面示例的基础上添加一个名为“遍历节点”的按钮,然后在该按钮的Click事件中添加如下代码:


    Dim node As TreeNode


    Dim str As String = ""


    For Each node In TreeView1.Nodes


    str = str & node.Text & vbCr


    Next


    MessageBox.Show(str)


    node = Nothing


    运行后,先分别为控件添加若干个根节点与子节点,然后单击“遍历节点”按钮,效果如下图六所示:


 


    很明显,我们遍历了Nodes集合,但是并没有如期访问到子节点,怎么解决这个问题呢?请看下一页。


    如上页的问题,我们假设一个根节点的Nodes集合为Nodes1,该集合中的一个Node节点为Node2,Node2下有若干个子节点,我们把它的子节点的集合称为Nodes2,我们用For Each 遍历Nodes1时,它访问到Node2,但不会访问Nodes2集合。


    如果我们要访问Nodes2,就需要像遍历Nodes1一样遍历Nodes2,解决办法如下:


    首先,建立一个过程用于遍历一个Node节点下的子节点:


    Private Sub PrintNode(ByVal N As TreeNode)


    Debug.WriteLine(N.Text)


    Dim node As TreeNode


    For Each node In N.Nodes


    PrintNode(node)


    Next


    End Sub


    然后把“遍历节点”的Click事件中修改为如下代码:


    Dim node As TreeNode


    For Each node In TreeView1.Nodes


    PrintNode(node)


    Next


    node = Nothing


    运行后,先分别为控件添加若干个根节点与子节点,然后单击“遍历节点”按钮,然后查看“输出”窗口,效果如下图七所示:


 


    可以发现已经能真正地遍历了所有节点。


    本文主要是了解TreeView 控件的一些主要属性,着重于掌握Nodes属性的性质和使用。请你继续关注我们巧巧读书网的vb.net相关文章连载,我们一起去探索vb.net编程世界。


 



 
   建站学堂
  ●  ASP编程技术
  ●  PHP编程技术
  ●  JSP编辑技术
  ●  ASP.NET编程技术
  ●  JAVA软件开发
  ●  C#软件开发
  ●  VB.NET软件开发
   网站推广与营销
  ● 网站备案的9个细节问题
  ● 网上注册一个域名的意义
  ● 网站从建设到运营的5点注意
  ● 8种提高网站ALEXA排名的方法
  ● 搜索引擎之间的4个区别
  ● 网站优化基本搜索引擎优化篇
  ● 点评A8音乐商业模式
  ● 5种不可取的网站推广方法
  ● SNS将成四大门户竞争的关键筹码
  ● 企业整站优化的一些技巧
  ● 马化腾创业三问
  ● 站长们每天都要做的工作
   网站优化与排名
  ● 快速提升访问量的方法
  ● 网站优化关键词工具,优化软件,SEO优化工具,SEO优化软件
  ● 总结四点分享我建站失败的经历
  ● 从达人圈到开心人人首谈SNS域名的选择与定位
  ● 良好心态是站长们成功的关键
  ● 浅谈做冷门站的一些心得体会
  ● 小游戏网站经营最重要的是站在用户的角度创新
  ● 关于网站首页打开速度之我见
  ● 谈一次域名解析出错带来的惨痛代价
  ● 我的地方论坛的建站之路经验总结
  ● 千人站长讲座第46期空姐网军哥谈特色社区运营
  ● 浅谈QQ类网站之站长的出路