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

dustwoo 2003-09-02 09:32:29
如果是这样的形式

-班级1
-学生1
-学生2
-班级2
-学生3

我想在点了"班级1"或"班级2"时,出现班级的信息;
点了学生后出现学生的信息。
谢谢,指教!
...全文
359 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
little_sophy 2003-09-08
  • 打赏
  • 举报
回复
同意 rainstormmaster(rainstormmaster) :

添加节点时,明确指定tag属性,为什么不是key属性呢,因为key属性各个节点都是唯一的,但是tag属性不是的,你可以把一种类型的节点的tag都设置为一样的,例如班级的tag是一样的,学生的tag是一样的。
然后在TreeView1_NodeClick事件中进行判断。
efsnake 2003-09-07
  • 打赏
  • 举报
回复
不知道你的子接点和父接点是怎么理解的?子和父是相对的关系,除了顶层接点,其他的每个接点都有自己的子接点和父接点。如
-班级1
-学生1
-语文
班级1是学生1的父接点,而学生1是语文的父接点,语文是学生1的子接点,学生1的子接点。

你所说的问题应该用Node.Key属性来解决,在创建的时候给每一个接点指定一个唯一的KEY,其中包含你所需要的信息。在Node_NodeClick事件中判断KEY就可以了三。这跟子接点和父接点无关的。
dwdali 2003-09-07
  • 打赏
  • 举报
回复
呵呵 我也懂了^_^
tgc19810107 2003-09-04
  • 打赏
  • 举报
回复
up
谢谢兄弟们的招,把我也弄懂了.
flinming 2003-09-04
  • 打赏
  • 举报
回复
判断如果他有子项的话,一定是父项了
dustwoo 2003-09-04
  • 打赏
  • 举报
回复
我觉得还是 rainstormmaster(rainstormmaster) 的方法比较好
要不然如果有三层或以上的话,好像就比较麻烦,对吗。
hongsongboy 2003-09-04
  • 打赏
  • 举报
回复
if TreeView1.SelectedItem.Children=0 then
说明为子节点
else
说明为父节点
end if
Gelim 2003-09-04
  • 打赏
  • 举报
回复
我也是这个想法,就是判断它的parent是不是nothing.
xuwuyu 2003-09-03
  • 打赏
  • 举报
回复
我的做法是判断一个结点的parent是不是存在,如:if MyNodes.parent is nothing then ......呵呵,这个方法我感觉是最好的!
rainstormmaster 2003-09-03
  • 打赏
  • 举报
回复
to northwolves(野性的呼唤):

不赞成使用node.text进行判定,原因是,如果把班级1、2换成具体的班级,则无法判断,如下面的形式:
-高二(3)班
-高兴
-刘备
-初三(4)班
-张飞
northwolves 2003-09-03
  • 打赏
  • 举报
回复
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
yijiansong 2003-09-03
  • 打赏
  • 举报
回复
判断一个结点的parent是不是存在,如:if MyNodes.parent is nothing then
hc_z 2003-09-03
  • 打赏
  • 举报
回复
每个节点都有唯一的key值呀。在TreeView1_NodeClick中判断节点是什么就行了嘛。你想干什么就什么。
hxy2003 2003-09-03
  • 打赏
  • 举报
回复
用child的就是不是主键啊。
hxy1982 2003-09-03
  • 打赏
  • 举报
回复
up
junki 2003-09-03
  • 打赏
  • 举报
回复
先肯定要判断一个结点的parent是不是存在,如:
if MyNodes.parent is nothing then
然后再进行操作,如上面所述的代码
……
rainstormmaster 2003-09-02
  • 打赏
  • 举报
回复
一个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

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧