11-07-13, 04:44 AM
(آخر تعديل لهذه المشاركة : 11-07-13, 05:52 AM {2} بواسطة بشار الذيب.)
في الكائانت الشجرية يتبع أسلوب Recursive
والحل أبسط من البساطة وذلك بعمل دالة واحدة فقط ترسل لها Node والنص المراد البحث عنه وهذه الدالة تستدعي نفسها لكل إبن من أبناء الnode
قمت بعمل دالتين واحدة رئيسية وأخرى فرعية ، الرئيسية ترسل لها اTreeView وهي بدورها تستخدم الدالة الفرعية
الدالة الفرعية يمكنك البحث عن عناصر داخل Node معين وأبنائه وأحفاده
المهم لاحظ كيف تعتمد الدالة على نفسها بحيث حتى لو كان هناك أكثر من مستوى ستصل له حتما
والحل أبسط من البساطة وذلك بعمل دالة واحدة فقط ترسل لها Node والنص المراد البحث عنه وهذه الدالة تستدعي نفسها لكل إبن من أبناء الnode
قمت بعمل دالتين واحدة رئيسية وأخرى فرعية ، الرئيسية ترسل لها اTreeView وهي بدورها تستخدم الدالة الفرعية
الدالة الفرعية يمكنك البحث عن عناصر داخل Node معين وأبنائه وأحفاده
المهم لاحظ كيف تعتمد الدالة على نفسها بحيث حتى لو كان هناك أكثر من مستوى ستصل له حتما
PHP كود :
Function SearchIn(node As TreeNode, text As String) As List(Of TreeNode)
Dim lst = New List(Of TreeNode)
For Each n As TreeNode In node.Nodes
If n.Text.Contains(text) Then
lst.Add(n)
End If
lst.AddRange(SearchIn(n, text))
Next
Return lst
End Function
Function Search(tree As TreeView, text As String) As List(Of TreeNode)
Dim lst = New List(Of TreeNode)
For Each n As TreeNode In tree.Nodes
If n.Text.Contains(text) Then
lst.Add(n)
End If
lst.AddRange(SearchIn(n, text))
Next
Return lst
End Function