回 帖 发 新 帖 刷新版面

主题:求救:treeview的子节点如何判断才能产生事件 大家来看看啊

vb.net中,treeview的结构是这样的

A
  a
  b
  c
  d
B
  e
  f
  g


用这样的代码可能产生想要的效果,
If e.Node.Text = "A" Then
………………
………………
………………
End If      效果为,单击A则执行下面的代码

请问,如果单击a或其它的b、c等,如何产生这样的效果,
也就是父节点用If e.Node.Text = "A" Then  那子节点如何表达
请大师指点

回复列表 (共14个回复)

沙发

用select case
  end select
语句
应该会简单点

板凳

能不能写明白一点,谢谢

用什么语句更简单不是我求救的原因,
我只想知道子节点如何表达

3 楼

treeview1.selectednode.nodes.text=a

4 楼

呵呵,你来了

但是不行啊
treeview1.selectednode.nodes.text中是没有text的搭配

提示是:text不是system.windows.forms.treenodecollection的成员

5 楼

这个问题我是用TreeView中各节点路径来解决最好。
      Private Sub TreeView1_BeforeSelect(---) Handles TreeView1.BeforeSelect
        Dim k As New TreeNode
        Dim S As String
        Dim L As String()
        k = e.Node
        S = k.FullPath.ToString
        Dim i As Integer
        ReDim L(i)
        L = Split(S, "\")
        If UBound(L) = 0 Then  '这里就是你单击A时的事件
           -------
         End if
        If UBound(L) = 1 Then  '这里就是你单击a时的事件
           -------
         End if

6 楼

你这一招太好了,谢谢

If UBound(L) = 0 Then  '这里就是你单击A时的事件


依你的方法,是OK   问题是这样A和B都产生同样的效果,请问如何分开。
(A和B都是同一级啊!)

7 楼

宝宝说的方法没错阿,只是大小写没有区分
楼主要有识别能力吗~~换成适当的大小写就可以了

8 楼

你理解错了

我的意思是,按照第五楼的思想,以我的节点结构:
部门一
  a
  b
  c
  d
部门二
  e
  f
  g



用这个
If UBound(L) = 0 Then  '这里就是你单击“部门一”时的事件
  -------
End if
结果点击“部门一”和“部门二”的效果一样,也就是这代码没有能把A和B区分为

同样
If UBound(L) = 1 Then  '这里就是你单击a时的事件
           -------
End if
结果也是点击a  b  c d   和 e  f g 都产生一样的效果,

9 楼

五楼的思想很不错,大家帮帮,补充一下,急用啊

10 楼

strChildNote = e.Node.Text           得到子节点的文本

strParentNote = e.Node.Parent.Text   得到选择的子节点的父节点文本

我来回复

您尚未登录,请登录后再回复。点此登录或注册