转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
vbscript版的TreeView,也就是树         ★★★★

vbscript版的TreeView,也就是树

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2324 更新时间:2009/4/23 15:43:40
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] 


[常用软件]TreeView 控件应用详解  [VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(二)
[VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(一)  [Delphi程序]Delphi中为TreeView添加单选和复选框
[Delphi程序]Object TreeView简要说明  [Delphi程序]Delphi下Treeview控件基于节点编号的访问
[VB.NET程序]将listview中显示出来的记录拖到treeview中去  [VB.NET程序]TreeView 控件树状控件的填充VB以及 VS.NET C#源代…
[VB.NET程序]Treeview 控件的使用方法  [Web开发]在ASP.NET中使用Treeview控件和XML
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台