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-1403, Jelsoft Enterprises Ltd.