繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> 组件控件开发 >> 继承创建自定义的TreeView

继承创建自定义的TreeView

2004-10-01 08:26:10  作者:  来源:互联网  浏览次数:16  文字大小:【】【】【
简介:CustomTreeViewForm类,好东西大家分享,好好研究一下哦! Public Class CustomTreeViewForm     Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated co...
关键字:TreeView

CustomTreeViewForm类,好东西大家分享,好好研究一下哦!

Public Class CustomTreeViewForm

Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

Public Sub New()

MyBase.New()

'This call is required by the Windows Form Designer.

InitializeComponent()

'Add any initialization after the InitializeComponent() call

InitializeForm()

End Sub

'Form overrides dispose to clean up the component list.

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

If disposing Then

If Not (components Is Nothing) Then

components.Dispose()

End If

End If

MyBase.Dispose(disposing)

End Sub

'Required by the Windows Form Designer

Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form Designer

'It can be modified using the Windows Form Designer.

'Do not modify it using the code editor.

Friend WithEvents tvwCategories As System.Windows.Forms.TreeView

Friend WithEvents txtSelectedID As System.Windows.Forms.TextBox

Private Sub InitializeComponent()

Me.tvwCategories = New System.Windows.Forms.TreeView()

Me.txtSelectedID = New System.Windows.Forms.TextBox()

Me.SuspendLayout()

'

'tvwCategories

'

Me.tvwCategories.ImageIndex = -1

Me.tvwCategories.Location = New System.Drawing.Point(7, 2)

Me.tvwCategories.Name = "tvwCategories"

Me.tvwCategories.SelectedImageIndex = -1

Me.tvwCategories.Size = New System.Drawing.Size(277, 240)

Me.tvwCategories.TabIndex = 0

'

'txtSelectedID

'

Me.txtSelectedID.Location = New System.Drawing.Point(6, 246)

Me.txtSelectedID.Name = "txtSelectedID"

Me.txtSelectedID.Size = New System.Drawing.Size(278, 20)

Me.txtSelectedID.TabIndex = 1

Me.txtSelectedID.Text = "txtSelectedID"

'

'CustomTreeViewForm

'

Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)

Me.ClientSize = New System.Drawing.Size(292, 273)

Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.txtSelectedID, Me.tvwCategories})

Me.Name = "CustomTreeViewForm"

Me.Text = "Custom TreeView"

Me.ResumeLayout(False)

End Sub

#End Region

Private Sub InitializeForm()

Dim objCategories As New Categories()

Dim i As Integer

Dim x As Integer

For i = 1 To 5

With objCategories.Add(New Category())

.CategoryID = "CAT" & i

.DisplayName = "Category " & i

For x = 1 To 3

With .AccountTypes.Add(New AccountType())

.AccountTypeID = "A" & x

.DisplayName = "AccountType " & x

End With

With .PartTypes.Add(New PartType())

.PartTypeID = "P" & x

.DisplayName = "PartType " & x

End With

Next x

End With

Next i

With Me.tvwCategories

Dim objCategory As Category

Dim objAccountType As AccountType

Dim objPartType As PartType

Dim objCategoryTreeNode As CategoryTreeNode

For Each objCategory In objCategories

objCategoryTreeNode = New CategoryTreeNode(objCategory)

.Nodes.Add(objCategoryTreeNode)

With objCategoryTreeNode

For Each objAccountType In objCategory.AccountTypes

.Nodes.Add(New AccountTypeTreeNode(objAccountType))

Next

For Each objPartType In objCategory.PartTypes

.Nodes.Add(New PartTypeTreeNode(objPartType))

Next

End With

Next

End With

End Sub

Private Sub tvwCategories_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles tvwCategories.AfterSelect

Dim objNode As TreeNode

objNode = tvwCategories.SelectedNode

Select Case objNode.GetType.ToString

Case "CustomTreeView.CategoryTreeNode"

Dim objCategoryTreeNode As CategoryTreeNode

objCategoryTreeNode = CType(objNode, CategoryTreeNode)

txtSelectedID.Text = objCategoryTreeNode.Category.CategoryID.ToString

Case "CustomTreeView.AccountTypeTreeNode"

Dim objAccountTypeTreeNode As AccountTypeTreeNode

objAccountTypeTreeNode = CType(objNode, AccountTypeTreeNode)

txtSelectedID.Text = objAccountTypeTreeNode.AccountType.AccountTypeID.ToString

Case "CustomTreeView.PartTypeTreeNode"

Dim objPartTypeTreeNode As PartTypeTreeNode

objPartTypeTreeNode = CType(objNode, PartTypeTreeNode)

txtSelectedID.Text = objPartTypeTreeNode.PartType.PartTypeID.ToString

End Select

End Sub

End Class

Public Class AccountType

Public AccountTypeID As String

Public DisplayName As String

End Class

Public Class PartType

Public PartTypeID As String

Public DisplayName As String

End Class

Public Class Category

Public CategoryID As String

Public DisplayName As String

Public AccountTypes As New AccountTypes()

Public PartTypes As New PartTypes()

End Class

Public Class Categories

Inherits CollectionBase

Public Function Add(ByVal value As Category) As Category

Me.InnerList.Add(value)

Add = value

End Function

End Class

Public Class AccountTypes

Inherits CollectionBase

Public Function Add(ByVal value As AccountType) As AccountType

Me.InnerList.Add(value)

Add = value

End Function

End Class

Public Class PartTypes

Inherits CollectionBase

Public Function Add(ByVal value As PartType) As PartType

Me.InnerList.Add(value)

Add = value

End Function

End Class

Public Class AccountTypeTreeNode

Inherits TreeNode

Public AccountType As AccountType

Sub New(ByVal Value As AccountType)

MyBase.New()

AccountType = Value

Me.Text = AccountType.DisplayName

End Sub

End Class

Public Class PartTypeTreeNode

Inherits TreeNode

Public PartType As PartType

Sub New(ByVal Value As PartType)

MyBase.New()

PartType = Value

Me.Text = PartType.DisplayName

End Sub

End Class

Public Class CategoryTreeNode

Inherits TreeNode

Public Category As Category

Sub New(ByVal Value As Category)

MyBase.New()

Category = Value

Me.Text = Category.DisplayName

End Sub

End Class

责任编辑:admin
相关文章