نحوه کار 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 تشکر