楼上的说得对,就应该这样,我就是这么做的。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
Node有一个显示+号的属性,自己找找
没有子,绝对不会有加号。唯一的办法就是添加一个让别人永远也看不见的子。微软的资源管理器就是这样做的。他先判断某文件夹是否有子,有就添加一个假的直到你要求展开。 thank you. By Morn
但是在VB控件中,没有子Node的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
thank you.
By Morn