没其他好方法了吗,譬如使用API?用图片的话,如果我一个Node需要一张图片,用了+-图片怎么放另外的图片

解决方案 »

  1.   

    这个使用在填充Treeview控件时,一开始填充一部分Node,等用户单击某个Node是再填充该Node下的子Node,所以在用户第一次单击这个Node前,Node应该显示加号,让用户知道需要单击。
    但是在VB控件中,没有子Node的Node是不显示加号的,这样就实现不了那样的效果。怎么办?
      

  2.   

    自己加一个临时空的子Node,用户单击时再将子Node隐藏或去掉。这样好不好处理?
      

  3.   

    楼上的说得对,就应该这样,我就是这么做的。Private Sub tvwPathList_Expand(ByVal Node As MSComctlLib.Node)
        Dim cPostData() As Byte
        Dim curNavigateUrl As String
        cPostData = StrConv("parentpath=" & Node.FullPath, vbFromUnicode)
        curNavigateUrl = getUploadUrl() & "shangchuan/listdirectory.jsp"
        WebBrowser1.Navigate curNavigateUrl, Null, Null, cPostData, SYSHEADERS
        Do While WebBrowser1.Busy = True Or WebBrowser1.ReadyState <> READYSTATE_COMPLETE Or WebBrowser1.Document Is Nothing
            DoEvents
        Loop
        
        Dim curNode As Node
        Dim tmpNode As Node
        Dim curDoc As IHTMLDocument2
        Dim curDirs() As String
        Dim i As Integer
        Set curDoc = WebBrowser1.Document
        '以上得到子节点的文本。
        If InStr(curDoc.body.innerText, FILEPATHFLAG) > 0 Then
            Set curNode = Node.Child
            Do While Not (curNode Is Nothing)
                Set tmpNode = curNode.Next
                Call tvwPathList.Nodes.Remove(curNode.Index)
                Set curNode = tmpNode
            Loop
            curDirs = Split(curDoc.body.innerText, ",")
            For i = 1 To UBound(curDirs)
                If Trim(curDirs(i)) <> "" Then
                    Set curNode = tvwPathList.Nodes.Add(Node.Index, tvwChild, , Trim(curDirs(i)), 1, 2)
                    Call tvwPathList.Nodes.Add(curNode.Index, tvwChild, , "")
                End If
            Next i
        End If
        Node.Selected = True
        Node.Selected = True
        Call tvwPathList_NodeClick(Node)
    End Sub
      

  4.   

    Node有一个显示+号的属性,自己找找
      

  5.   

    没有子,绝对不会有加号。唯一的办法就是添加一个让别人永远也看不见的子。微软的资源管理器就是这样做的。他先判断某文件夹是否有子,有就添加一个假的直到你要求展开。
    thank you.
    By Morn