نحوه کار TreeView در Windows Application
سه شنبه 25 فروردین 1394در این مقاله در مورد کنترل TreeView برای windows application در VB.Net توضیح خواهیم داد .
خروجی برنامه به شکل زیر خواهد بود

MBTreeViewExplorer چیست ؟ این یک نمونه از کنترل TreeView میباشد که برای Windows Explorer interface استفاده می شود .هیچ تابعی در متد کنترل TreeeView اضافه نمی کند , اگر چه Shell Item Class را ارائه می دهد که می توان با استفاده از این کلاس , مثال ذکر شده در این مقاله را گسترش داد .این امر برای افرادی که با لیست و Shell32 تجربه کار را دارند می تواند مفید باشد .
MBTreeViewExplorer یک explorer میباشد که از تمام خصوصیات کنترل TreeView ارث بری می کند .
زبان مورد استفاده در این مثال VB.Net می باشد .
مفهوم MBTreeViewExplorer از windows explorer می آید که شامل 4 کلاس,ShellAPI,Shell Item , ShellDLL و یک SystemImageList میباشد .
Private Sub LoadNodes()
'Set Treeview Image List for MBTreeViewExplorer
SystemImageList.SetTreeViewImageList(MBTreeView, False)
'New ShellItem to Load Desktop
Dim m_shDesktop As ShellItem = New ShellItem()
Dim tvwRoot As TreeNode = New TreeNode()
tvwRoot.Name = m_shDesktop.Path
tvwRoot.Text = m_shDesktop.DisplayName
tvwRoot.ImageIndex = m_shDesktop.IconIndexNormal
tvwRoot.SelectedImageIndex = m_shDesktop.IconIndexOpen
tvwRoot.Tag = m_shDesktop
Dim arrChildren As ArrayList = m_shDesktop.GetAllDirectories
For Each shChild As ShellItem In arrChildren
Dim tvwChild As TreeNode = New TreeNode()
tvwChild.Name = shChild.Path
tvwChild.Text = shChild.DisplayName
tvwChild.ImageIndex = shChild.IconIndexNormal
tvwChild.SelectedImageIndex = shChild.IconIndexOpen
tvwChild.Tag = shChild
If shChild.IsFolder And shChild.HasSubFolders Then tvwChild.Nodes.Add("PH")
tvwRoot.Nodes.Add(tvwChild)
Next
MBTreeView.Nodes.Clear()
MBTreeView.Nodes.Add(tvwRoot)
tvwRoot.Expand()
End Sub
کدهای زیر نیز برای مدیریت و نمایش آیکون های مختلف میباشد :
Public Shared Sub SetTreeViewImageList( _
ByVal treeView As TreeView, _
ByVal forStateImages As Boolean)
Initializer()
Dim wParam As Integer = LVSIL_NORMAL
If forStateImages Then
wParam = LVSIL_STATE
End If
Dim HR As Integer
HR = SendMessage(treeView.Handle, _
TVM_SETIMAGELIST, _
wParam, _
m_smImgList)
End Sub
- C#.net
- 3k بازدید
- 6 تشکر