CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  控件

控件treeview中是如何区分父节点和子节点的

楼主dustwoo(尘)2003-09-02 21:32:29 在 VB / 控件 提问

如果是这样的形式  
   
  -班级1  
        -学生1  
        -学生2  
  -班级2  
        -学生3  
   
  我想在点了"班级1"或"班级2"时,出现班级的信息;  
  点了学生后出现学生的信息。  
  谢谢,指教! 问题点数:100、回复次数:17Top

1 楼rainstormmaster(暴风雨 v2.0)回复于 2003-09-02 23:42:15 得分 100

一个treeview,一个textbox,思路为:添加节点时指明其节点的tag,点击时根据tag属性判断点击的是哪一类节点:  
   
   
  Option   Explicit  
   
  Private   Sub   Form_Load()  
          Dim   mnode   As   Node,   nnode   As   Node  
          Set   mnode   =   Me.TreeView1.Nodes.Add(,   ,   ,   "班级1")  
          mnode.Tag   =   "班级"  
          mnode.Expanded   =   True  
          Set   nnode   =   Me.TreeView1.Nodes.Add(mnode,   tvwChild,   ,   "同学1")  
          nnode.Tag   =   "同学"  
          Set   nnode   =   Me.TreeView1.Nodes.Add(mnode,   tvwChild,   ,   "同学2")  
          nnode.Tag   =   "同学"  
           
          Set   mnode   =   Me.TreeView1.Nodes.Add(,   ,   ,   "班级2")  
          mnode.Tag   =   "班级"  
          mnode.Expanded   =   True  
          Set   nnode   =   Me.TreeView1.Nodes.Add(mnode,   tvwChild,   ,   "同学3")  
          nnode.Tag   =   "同学"  
          Set   nnode   =   Me.TreeView1.Nodes.Add(mnode,   tvwChild,   ,   "同学4")  
          nnode.Tag   =   "同学"  
  End   Sub  
   
  Private   Sub   TreeView1_NodeClick(ByVal   Node   As   MSComctlLib.Node)  
          Select   Case   Node.Tag  
          Case   "班级"  
          Text1.Text   =   "你点击的是一个班级,班级名称为"   +   Node.Text  
          Case   "同学"  
          Text1.Text   =   "你点击的是一个同学,该同学来自"   +   Node.Parent.Text   +   "姓名为:"   +   Node.Text  
          End   Select  
  End   Sub  
  Top

2 楼northwolves(狼行天下)回复于 2003-09-03 00:08:19 得分 0

Private   Sub   TreeView1_NodeClick(ByVal   Node   As   MSComctlLib.Node)  
          Select   Case   Left(Node.Text,   2)  
          Case   "班级"  
          MsgBox   "你点击的是一个班级,班级名称为   "   +   Node.Text  
          Case   "同学"  
        MsgBox   "你点击的是一个同学,该同学来自   "   +   Node.Parent.Text   +   ",姓名为:"   +   Node.Text  
          End   Select  
  End   Sub  
  Top

3 楼rainstormmaster(暴风雨 v2.0)回复于 2003-09-03 00:15:52 得分 0

to     northwolves(野性的呼唤):  
   
  不赞成使用node.text进行判定,原因是,如果把班级1、2换成具体的班级,则无法判断,如下面的形式:  
  -高二(3)班  
        -高兴  
        -刘备  
  -初三(4)班  
        -张飞  
  Top

4 楼xuwuyu(飘渺风)回复于 2003-09-03 00:21:22 得分 0

我的做法是判断一个结点的parent是不是存在,如:if   MyNodes.parent   is   nothing   then   ......呵呵,这个方法我感觉是最好的!Top

5 楼hxy2003(asfd)回复于 2003-09-03 09:38:10 得分 0

用child的就是不是主键啊。Top

6 楼hc_z(石泉)回复于 2003-09-03 10:13:17 得分 0

每个节点都有唯一的key值呀。在TreeView1_NodeClick中判断节点是什么就行了嘛。你想干什么就什么。  
  Top

7 楼yijiansong(不知路在何方)回复于 2003-09-03 11:06:34 得分 0

判断一个结点的parent是不是存在,如:if   MyNodes.parent   is   nothing   thenTop

8 楼junki(『.NET技术争霸天下』)回复于 2003-09-03 18:16:26 得分 0

先肯定要判断一个结点的parent是不是存在,如:  
  if   MyNodes.parent   is   nothing   then  
  然后再进行操作,如上面所述的代码  
  ……Top

9 楼hxy1982(农夫三拳有点甜)回复于 2003-09-03 18:52:55 得分 0

upTop

10 楼Gelim(Gelim)回复于 2003-09-04 01:34:23 得分 0

我也是这个想法,就是判断它的parent是不是nothing.Top

11 楼hongsongboy(红松)回复于 2003-09-04 08:25:19 得分 0

if   TreeView1.SelectedItem.Children=0   then    
      说明为子节点  
  else  
      说明为父节点  
  end   ifTop

12 楼dustwoo(尘)回复于 2003-09-04 09:23:21 得分 0

我觉得还是   rainstormmaster(rainstormmaster)   的方法比较好  
  要不然如果有三层或以上的话,好像就比较麻烦,对吗。Top

13 楼flinming(flinming)回复于 2003-09-04 09:33:31 得分 0

判断如果他有子项的话,一定是父项了Top

14 楼tgc19810107(城市包围农村)回复于 2003-09-04 12:46:44 得分 0

up  
  谢谢兄弟们的招,把我也弄懂了.Top

15 楼dwdali(Whisky)回复于 2003-09-07 20:20:02 得分 0

呵呵   我也懂了^_^Top

16 楼efsnake(八蛇)回复于 2003-09-07 20:42:55 得分 0

不知道你的子接点和父接点是怎么理解的?子和父是相对的关系,除了顶层接点,其他的每个接点都有自己的子接点和父接点。如  
  -班级1  
        -学生1  
              -语文  
  班级1是学生1的父接点,而学生1是语文的父接点,语文是学生1的子接点,学生1的子接点。  
   
  你所说的问题应该用Node.Key属性来解决,在创建的时候给每一个接点指定一个唯一的KEY,其中包含你所需要的信息。在Node_NodeClick事件中判断KEY就可以了三。这跟子接点和父接点无关的。Top

17 楼little_sophy(晓晓)回复于 2003-09-08 12:27:25 得分 0

同意   rainstormmaster(rainstormmaster)   :  
   
  添加节点时,明确指定tag属性,为什么不是key属性呢,因为key属性各个节点都是唯一的,但是tag属性不是的,你可以把一种类型的节点的tag都设置为一样的,例如班级的tag是一样的,学生的tag是一样的。  
  然后在TreeView1_NodeClick事件中进行判断。Top

相关问题

  • 删除treeview 控件节点
  • treeview 控件找父节点
  • treeview控件,增加节点问题!
  • 怎样在treeview控件的节点中间插入节点?
  • treeview控件中如何判断点击的是父节点,还是子节点
  • TreeView控件,已知节点A的KEY值,怎么删除这个节点A?
  • 在TreeView控件中,如何得到选中节点的父节点的值?
  • treeview控件问题,怎样确定控件中是否有节点
  • 控件TreeView节点控制,迷惑不解!!!
  • TreeView节点分色显示及TImage控件组问题!棘手!!!

关键词

  • 节点
  • tag
  • 学生
  • 属性
  • me
  • 信息
  • 接点
  • mnode
  • 班级
  • nnode

得分解答快速导航

  • 帖主:dustwoo
  • rainstormmaster

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo