es(Key) ????TreeView_onClick Me.Name,Me.Nodes(Key) ???? ???Case UCase("Menu_OnClick") ????TreeView_PopupMenu_onClick Me.Name,Key,lMenuNode ???? ??End Select ??Err.Clear ?End Function ?''''================================================================ End Class
? ''''=============================================================
''''===结点的类=================================================== Class Node ?Public parentObject??''''该节点归属的TreeView对象 ?Public Key????''''层的关键字 ?Private lText???''''显示的文本 ?Public Property Get Text() ??Text = lText ?End Property ?Public Property Let Text(ByVal vNewValue) ??lText = vNewValue ??''''===设置文字 ??Dim objNode ??Set objNode = document.getElementById(me.Key) ??If Not objNode Is Nothing Then ???objNode.rows(0).cells(Me.Level+2).firstChild.innerHTML = vNewValue ??End If ?End Property ? ?Private lHyperLink ?Public Property Get HyperLink() ??HyperLink = lHyperLink ?End Property ?Public Property Let HyperLink(ByVal vNewValue) ??lHyperLink = vNewValue ??Dim objNode ??Set objNode = document.getElementById(me.Key) ??If Not objNode Is Nothing Then ???objNode.rows(0).cells(Me.Level+2).firstChild.href = vNewValue ??End If ?End Property ? ?? ?Public Index???''''索引 ?Public Level???''''层次,根节点层次为0 ?''''Public HyperLink??''''联接的地址 ?Public ParentNode??''''父节点 ?Public PreviousNode??''''前一个兄弟节点 ?Public NextNode???''''下一个兄弟节点 ?Public ChildrenCount?''''子节点个数 ?Public NodeIndex??''''索引,每一级用两位(26个大写字母)表示,共有26*26=676个节点 ?Public ChildrenNodes?''''子节点集合,从零开始 ?Public AddType???''''节点添加类型 ?Public Flag????''''附加标记,主要用于给用户在事件中扩展使用 ? ?Private lImage????''''图标 ?Private lDisplayStatus??''''显示状态??0-未显示,1-显示 ?Private lExpandStatus??''''展开状态??0-未展开,1-展开 ?Private lFirstDisplay??''''是否是第一次显示 ? ?Private Sub Class_Initialize() ??Set parentObject = Nothing ??Key = "" ??lText = "" ??Index = 0 ??Level = 0 ??HyperLink = "" ??Set ParentNode = Nothing ??Set PreviousNode = Nothing ??Set NextNode = Nothing ??Redim ChildrenNodes(0) ??Set ChildrenNodes(0) = Nothing ??ChildrenCount = 0 ??NodeIndex = "" ??Image = "" ??lExpandStatus = 0 ??lDisplayStatus = 0 ??lFirstDisplay = True ?? ??AddType = "1"??''''默认为添加子节点 ??Flag = "" ?End Sub ? ?Public Function Display() ??dim tabTreeView,udtTreeView ??Set tabTreeView = Document.getElementById("tabTreeView") ??Set udtTreeView = Me.parentObject ??Dim objNode ??dim objTab,objTR,objTD ??dim i ??Set objNode = Document.getElementById(Me.Key) ??If objNode Is Nothing Then ?? ???''''===检测节点的添加类型 ???If Me.AddType = 1 Then ????If Me.ParentNode.NextNode Is Nothing Then ?????If Me.PreviousNode Is Nothing Then ??????i = Document.getElementById(Me.ParentNode.Key).parentElement.parentElement.rowIndex + 1 ?????Else ??????Set objNode = Me.PreviousNode ??????Do Until objNode.ChildrenCount = 0 ???????Set objNode = objNode.Children(objNode.ChildrenCount) ??????Loop ??????i = Document.getElementById(objNode.Key).parentElement.parentElement.rowIndex + 1 ?????End If ????Else ?????i = Document.getElementById(Me.ParentNode.NextNode.Key).parentElement.parentElement.rowIndex ????End If ???ElseIf Me.AddType = 2 then ????i = Document.getElementById(Me.NextNode.Key).parentElement.parentElement.rowIndex ???ElseIf Me.AddType = 3 Then ????If Me.NextNode Is Nothing Then ?????Set objNode = Me.PreviousNode ?????Do Until objNode.ChildrenCount = 0 ??????Set objNode = objNode.Children(objNode.ChildrenCount) ?????loop ?????i = Document.getElementById(objNode.Key).parentElement.parentElement.rowIndex + 1 ????Else ?????i = Document.getElementById(Me.NextNode.Key).parentElement.parentElement.rowIndex ????End If ???Else ????i = tabTreeView.rows.length ???End If ???Set objTR=tabTreeView.insertRow(i) ???Set objTD=objTR.insertCell() ???objTD.innerHTML = "" ??? ???Set objTab = Document.getElementById(Me.Key) ???objTab.border = "0" ???objTab.Cellpadding = "0" ???objTab.CellSpacing = "0" ??? ???Set objTR = objTab.insertRow() ??? ???For i = 1 To Me.Level ????Set objTD = objTR.insertCell() ????objTD.innerHTML = " " ???Next ??? ???Set objTD = objTR.insertCell() ??? ???Dim strImg ???If Me.parentObject.UseConnectLine Then ????strImg = "Lplus.gif" ???Else ????strImg = "Rplus.gif" ???End If ???objTD.innerHTML = " " ??? ???objTD.Height = 15 ???Set objTD = objTR.insertCell() ???if Me.Image = "" Then ????objTD.innerHTML = " " ???Else ????objTD.innerHTML = " " ???End If ???Set objTD = objTR.insertCell() ???objTD.NoWrap = "1"????''''不换行 ???''''objTD.height = "25" ???If Me.HyperLink = "" Then ????objTD.innerHTML = "" ???Else ????objTD.innerHTML = "" & Me.Text & "" ???End If ??? ??End If ?? ?? ?End Function ? ?''''===孩子节点的集合============================================================= ?Public Function Children(ByVal Index) ??dim i ??Set Children = Nothing ??Index = Trim(Index) ??If IsNumeric(index) = False Then ???For i=0 to Ubound(ChildrenNodes) ????If UCase(ChildrenNodes(i).Key) = UCase(Index) Then ?????Set Children = ChildrenNodes(i) ?????Exit Function ????End If ???Next ??Else ???If Cint(index) < 1 Or Cint(index) > ChildrenCount Then ????Exit Function ???Else ????Set Children = ChildrenNodes(CInt(index) - 1) ???End If ??End If ?End Function ?''''============================================================================== ? ?''''===添加一个子节点 ?Public Function AddChild(objNode) ??Redim Preserve ChildrenNodes(ChildrenCount) ??Set ChildrenNodes(ChildrenCount) = objNode ??ChildrenCount = ChildrenCount + 1 ?End Function ? ?''''===展开状态 ?Public Property Get ExpandStatus() ??ExpandStatus = lExpandStatus ?End Property ?Public Property Let ExpandStatus(ByVal vNewValue) ??Dim PlusValue ??If Me.ParentNode Is Nothing Or Not Me.parentObject.UseConnectLine Then ???If Me.ChildrenCount > 0 Then ????PlusValue = "R" ???Else ????PlusValue = "Blank" ???End If ??Else ???If Me.NextNode Is Nothing Then ????PlusValue = "L" ???Else ????PlusValue = "T" ???End If ??End If ?? ??If vNewValue = 0 Then ???If me.ChildrenCount > 0 Or lFirstDisplay = True Then ????PlusValue = PlusValue & "plus" ???End IF ??ElseIf vNewValue = 1 Then ???If Me.ChildrenCount > 0 Then ????PlusValue = PlusValue & "minus" ???End If ???lFirstDisplay = False ??End If ?? ??lExpandStatus = vNewValue ??Document.getElementById("plus" & Me.Key).src = Me.ParentObject.ImagePath & PlusValue & ".gif"? ?End Property ? ? ?''''===显示状态 ?Public Property Get DisplayStatus() ??DisplayStatus = lDisplayStatus ?End Property ?Public Property Let DisplayStatus(ByVal vNewValue) ??If Not Me.parentNode Is Nothing Then ???If CBool(vNewValue) And Not CBool(Me.parentNode.ExpandStatus) Then ????Exit Property ???End If ??End If ?? ?? ??lDisplayStatus = vNewValue ?? ??Dim obj ??Set obj = Document.getElementById(Me.Key) ??If Not obj Is Nothing Then ???Set obj = obj.parentElement.parentElement ???If CBool(vNewValue) Then ????obj.style.display = "" ???Else ????obj.style.display = "none" ???End IF ??End If ??Set obj = Nothing ?End Property ? ?''''===节点图标 ?Public Property Get Image()??''''带目录的文件名 ??Image = lImage ?End Property ?Public Property Let Image(ByVal vNewValue) ??lImage = vNewValue ??If NOT Document.getElementById(Me.Key) Is Nothing Then ???Document.getElementById(Me.Key).rows(0).cells(Me.Level+1).FirstChild.src = vNewValue ??End IF ?End Property ?
End Class
?
上一页 [1] [2] [3] |