نحوه کار TreeView در Windows Application

در این مقاله در مورد کنترل TreeView برای windows application در VB.Net توضیح خواهیم داد .

نحوه کار TreeView  در Windows Application

خروجی برنامه به شکل زیر خواهد بود

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  

 

فایل های ضمیمه