一个TREEVIEW,上面有好多节点。
点击一个,如何在RICHTEXTBOX空件中显示相应的内容???
点一次就换成这个所点节点的内容
就像下图中
http://xrl.lzu.edu.cn/bbs2/uploadImages/200341315593084485.jpg

解决方案 »

  1.   

    用nodekey来返回点击的索引值
    然后根据该节点的内容搜索显示的内容
    例如
    If Node.Key = "M" Then
       Set rs = New ADODB.Recordset
       rs.Open "select * from tb_msdn where fd_title='" & Node.Text & "'", conn, adOpenKeyset, adLockOptimistic
    end if
      

  2.   

    我还是不太明白
    能不能讲讲Node.Key 返回什么吗?
      

  3.   

    Private Sub Form_Load()
     Dim Node1 As Node
      Dim Node2 As Node
      Dim Node3 As Node
      Dim i As Integer
      Dim j As Integer
      Dim k As Integer
      Dim imgx As ListImage
      Set imgx = ImageList1.ListImages.Add(, , LoadPicture("c:\1.ico"))
        Set imgx = ImageList1.ListImages.Add(, , LoadPicture("c:\2.ico"))
          
     TreeView1.ImageList = ImageList1
     
      ' For some convenience...
      TreeView1.HideSelection = False
      TreeView1.LabelEdit = tvwManual
      TreeView1.LineStyle = tvwRootLines
      
      ' Fill up the treeview...
      
        Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录1", 2)
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录2", 2)
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录3", 2)
               
        Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
         Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
         
        Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
         Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
         
        Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
         Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
         
        Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
         
      
        Node1.Expanded = False
      
      
      ' Set the labels with the first root Node's text.
      ' (a NodeClick event is not generated even though the first
      ' node in the TV is selected when the TV first appears).End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
    Dim FileNumber
    Dim Lstr As String
    FileNumber = FreeFile   ' 取得未使用的档案代码。
    Open "c:\1.txt" For Input As #FileNumber
    Do While Not EOF(FileNumber)
       Line Input #FileNumber, Lstr
       RichTextBox1.Text = RichTextBox1.Text + Lstr + Chr(13) + Chr(10)
    Loop
    Close #FileNumber
    End Sub有哪位高手,帮我看看我应把代码
    If Node.Key = "M" Then
       Set rs = New ADODB.Recordset
       rs.Open "select * from tb_msdn where fd_title='" & Node.Text & "'", conn, adOpenKeyset, adLockOptimistic
    end if
    加在哪里???
    怎么改?
      

  4.   

    Node.Key 是该节点的关键字,它是唯一的,这样可以对应文件名。
      

  5.   

    最简单的方法
    可以先定义一个字符串变量如astr
    在object_NodeClick事件下面
    dim astr as string
      astr=node.text
      然后用一个Select语句
      select case astr
        case str1
            执行str1对应的语句
        case str2
            执行str1对应的语句
        case ...
              
        case else
    end select
      

  6.   

    还有你的代码中,没有写入key值的地方。
      

  7.   

    明白没有阿!
    写入Key后就可以在NodeClike事件中来判断它的值了。
    Private Sub Command1_Click()
    Dim Node1 As Nodes
    Me.TreeView1.Nodes.Add , , , "根目录"
    Me.TreeView1.Nodes.Add 1, tvwChild, "M1", "子目录1"
    Me.TreeView1.Nodes.Add 1, tvwChild, "M2", "子目录2"
    Me.TreeView1.Nodes.Add 1, tvwChild, "M3", "子目录3"
    Me.TreeView1.Nodes.Item(1).Expanded = True
    End SubPrivate Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
    MsgBox Mid(Node.Key, 1, 1)
    End Sub
    非常简单的一段,自己看看,不懂再说!我想你应该明白了。
      

  8.   

    那???
    KEY值加在哪???
    就拿下面这句话说
    Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录1", 2)
      

  9.   

    你看看key的语法嘛。大哥!
    就加在tvwChild后面的阿。key值不能够重复的哦!
      

  10.   

    Private Sub Form_Load()
     Dim Node1 As Node
      Dim Node2 As Node
      Dim Node3 As Node
      Dim i As Integer
      Dim j As Integer
      Dim k As Integer
      Dim imgx As ListImage
      Set imgx = ImageList1.ListImages.Add(, , LoadPicture("c:\1.ico"))
        Set imgx = ImageList1.ListImages.Add(, , LoadPicture("c:\2.ico"))
          
     TreeView1.ImageList = ImageList1
     
      ' For some convenience...
      TreeView1.HideSelection = False
      TreeView1.LabelEdit = tvwManual
      TreeView1.LineStyle = tvwRootLines
      
      ' Fill up the treeview...
      
        Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录1", 2)
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录2", 2)
               
        Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
         Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
         
        Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
         Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
         
        Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
         Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
         
        Set Node1 = TreeView1.Nodes.Add(, , , "根目录", 1)
       
          Set Node2 = TreeView1.Nodes.Add(Node1.Index, tvwChild, , "子目录", 2)
         
      
        Node1.Expanded = False
      
      
      ' Set the labels with the first root Node's text.
      ' (a NodeClick event is not generated even though the first
      ' node in the TV is selected when the TV first appears).End SubPrivate Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
    Dim astr As String
      astr = Node.Text
     '然后用一个Select语句
      Select Case astr
        Case "子目录1"
            Dim FileNumber
    Dim Lstr As String
    FileNumber = FreeFile   ' 取得未使用的档案代码。
    Open "c:\1.txt" For Input As #FileNumber
    Do While Not EOF(FileNumber)
       Line Input #FileNumber, Lstr
       RichTextBox1.Text = RichTextBox1.Text + Lstr + Chr(13) + Chr(10)
    Loop
    Close #FileNumber
        Case "子目录2"
                    Dim FileNumber1
    Dim Lstr1 As String
    FileNumber1 = FreeFile   ' 取得未使用的档案代码。
    Open "c:\2.txt" For Input As #FileNumber1
    Do While Not EOF(FileNumber1)
       Line Input #FileNumber1, Lstr1
       RichTextBox1.Text = RichTextBox1.Text + Lstr1 + Chr(13) + Chr(10)
    Loop
    Close #FileNumber1          
        Case Else
    End Select
    End Sub这是我刚改的
    可是在打开第一个之后,我如果接着打开第二个文件,它是接着第一个的
    也就是说,在一个RICHTEXTBOX中,一下显示了两篇文章。。
    我如果想在打开第二篇文章后,清除第一篇,只显示第二篇
    我要怎么做???
      

  11.   

    这是我刚改的
    可是在打开第一个之后,我如果接着打开第二个文件,它是接着第一个的
    也就是说,在一个RICHTEXTBOX中,一下显示了两篇文章。。
    我如果想在打开第二篇文章后,清除第一篇,只显示第二篇
    我要怎么做???
      

  12.   

    请参照:Add 方法(Nodes 集合)
          在 Treeview 控件的 Nodes 集合中添加一个 Node 对象。语法object.Add(relative, relationship, key, text, image, selectedimage)Add 方法的语法包含下面部分:部分 描述 
    object 必需的。对象表达式,其值是“应用于”列表中的一个对象 
    relative 可选的。已存在的 Node 对象的索引号或键值。新节点与已存在的节点间的关系,可在下一个参数 relationship 中找到。 
    relationship 可选的。指定的 Node 对象的相对位置,如设置值中所述。 
    key 可选的。唯一的字符串,可用于用 Item 方法检索 Node。 
    text 必需的。在 Node 中出现的字符串。 
    image 可选的。在关联的 ImageList 控件中的图像的索引。 
    selectedimage  可选的。在关联的 ImageList 控件中的图像的索引,在 Node 被选中时显示。 
    设置值relationship 的设置值是:常数 值 描述 
    tvwFirst 0 首的节点。该 Node 和在 relative 中被命名的节点位于同一层,并 位于所有同层节点之前。 
    tvwLast 1 最后的节点。该 Node 和在 relative 中被命名的节点位于同一层,并 位于所有同层节点之后。任何连续地添加的节点可能位于最后添加的节点之后 
    tvwNext 2 (缺省)下一个节点。该 Node 位于在 relative 中被命名的节点之后。 
    tvwPrevious 3 前一个节点。该 Node 位于在 relative 中被命名的节点之前。 
    tvwChild 4 (缺省)子节点。该 Node 成为在 relative 中被命名的 
    节点的子节点。
     
    注意 如果在 relative 中没有被命名的 Node 对象,则新节点被放在节点顶层的最后位置。说明Nodes 集合是一个基于 1 的集合。在添加 Node 对象时,它被指派一个索引号,该索引号被存储在 Node 对象的 Index 属性中。这个最新成员的 Index 属性值就是 Node 集合的 Count 属性的值。因为 Add 方法返回对新建立的 Node 对象的引用,所以使用这个引用来设置新 Node 的属性十分方便。以下例子添加几个具有相同属性的 Node 对象:Dim nodX As Node   '声明对象变量。
    Dim I as Integer   '声明计数器变量。
    For I = 1 to 4
       Set nodX = TreeView1.Nodes.Add(,,,"Node " & Cstr(i))
       '使用引用来设置其它属性,如 Enabled。
       nodX.Enabled = True
       '把图像属性设置为在关联的 ImageList 中的图像 3。
       nodX.ExpandedImage = 3
    Next I
      

  13.   

    是不是要用一句
    richtextbox1.text=""
    ???
    可是我不知道应该加在哪儿?
      

  14.   

    TO:lingfeng_314(凌风) 
    你真是个热心人
    我是兰大的学生,如果想和我做个朋友。
    请加我!!!
    QQ:120775380
    期待着你!
      

  15.   

    你还没有搞定吗?
    就在NodeClike事件中阿。
    建议你不要学vb了。