samiasoft
جمعه 24 مهر 1394, 22:29 عصر
سلام دوستان
- چگونه کل مقادیر کنترل TreeView1  رو برابر TreeView2 قرار بدیم؟
TreeView2=TreeView1 
- چگونه تعداد ایتم های یک نود انتخاب شده با موس رو بدست بیاریم؟
برای مثال در تصویر زیر آیتم های fff (کلیک شده) رو که برابر 2 هست. در واقع میخواستم با یه شرط بررسی کنیم که نود انتخاب شده ایا دارای آیتم هست یا نه.
http://s3.picofile.com/file/8217608150/2015_10_16_221655.jpg
vbhamed
دوشنبه 27 مهر 1394, 07:04 صبح
سلام
برای تعداد آیتم ها از نمونه زیر استفاده کنید
    TreeView1.Nodes.Add , , "Sample", "Primary"
    TreeView1.Nodes.Add , , "Sample2", "Primary2"
    TreeView1.Nodes.Add "Sample", tvwChild, "Sample3", "Child"
    
    MsgBox TreeView1.Nodes(1).Children
    'or
    MsgBox TreeView1.Nodes("Sample").Children
    'or
    MsgBox TreeView1.SelectedItem.Children
اولین دستور تعداد آیتم ها با توجه به اندیس نود و دومین دستور با توجه به کلید نود و سومین دستور نود انتخاب شده جاری رو برمیگردونه
برای کپی همه آیتم ها هم دستوری ساده که این رو مساوی اون قرار بده وجود نداره و باید کد بنویسید، البته بعد از نوشتن کد دیگه فرض کنید این دستور وجود داره !
یک دکمه و دو عدد Treeview بزارید و کدهای زیر رو قرار بدید
Option Explicit
Private Sub Command1_Click()
    CopyTreeview TreeView1, TreeView2
End Sub
Private Sub CopyTreeview(objTVSrc As TreeView, objTVDest As TreeView)
    Dim nodeRoot As Node
    objTVDest.Nodes.Clear
    For Each nodeRoot In objTVSrc.Nodes
        If (nodeRoot.Parent Is Nothing) Then CopyTVParentNode nodeRoot, objTVDest.Nodes
    Next
End Sub
Private Sub CopyTVParentNode(nodeParent As Node, nodesDest As Nodes)
    Dim nodeDummy As Node
    Dim nodeChild As Node
    Set nodeDummy = CopyNode(nodeParent, nodesDest)
    Set nodeChild = nodeParent.Child
    Do While Not (nodeChild Is Nothing)
        If nodeChild.Children Then
            CopyTVParentNode nodeChild, nodesDest
        Else
            Set nodeDummy = CopyNode(nodeChild, nodesDest)
        End If
        Set nodeChild = nodeChild.Next
    Loop
End Sub
Private Function CopyNode(nodeSrc As Node, nodesDest As Nodes) As Node
    With nodeSrc
        If (.Parent Is Nothing) Then
            Set CopyNode = nodesDest.Add(, , .Key, .Text, .Image, .SelectedImage)
            CopyNode.Expanded = True
        Else
            Set CopyNode = nodesDest.Add(.Parent.Index, tvwChild, .Key, .Text, .Image, .SelectedImage)
            CopyNode.Expanded = True
        End If
    End With
End Function
Private Sub Form_Load()
    TreeView1.Nodes.Add , , "Sample", "Primary"
    TreeView1.Nodes.Add , , "Sample2", "Primary2"
    TreeView1.Nodes.Add "Sample", tvwChild, "Sample3", "Child"
End Sub
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.