تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
البحث فى القائمة الشجرية
#1
السلام عليكم
اريد البحث فى القائمة الشجرية
وعمل زر نكست يضغط عليه يفتح نتيجة البحث التالية حتى يصل الى النهاية تظهر سالة
الرد }}}
تم الشكر بواسطة:
#2
(14-10-13, 02:32 PM)ali.alfoly كتب : السلام عليكم
اريد البحث فى القائمة الشجرية
وعمل زر نكست يضغط عليه يفتح نتيجة البحث التالية حتى يصل الى النهاية تظهر سالة

تبحث عن ماذا

عندك شيئ يسمونه Root

وتحته Child

ايهم تريد البحث عنه
الرد }}}
تم الشكر بواسطة:
#3
الفرعية Child
الرد }}}
تم الشكر بواسطة:
#4
(14-10-13, 02:43 PM)ali.alfoly كتب : الفرعية Child

مارأيك بهذه الدالة

PHP كود :
Public Function FindSpecificChild(ByRef treeView As TreeViewByVal childText As String) As Boolean

        
For Each rootNode As TreeNode In treeView.Nodes 'الدوران على الروت'

            
For Each childnodes As TreeNode In rootNode.Nodes 'الدوران على الاطفال ههه'
                
If childnodes.Text childText Then
                    
Return True
                End 
If
            
Next

        Next
        
Return False

    End 
Function 

اذا وجدت عنصر من نوع Child مطابق للإسم الي اخترته في البارمتار الثاني ، سترجع True
الرد }}}
تم الشكر بواسطة: Sajad
#5
تمام والله ممتاز
جزاك الله خير
طيب هى مش الى انا عاوزه
انا اريد
هل جربت البحث فى الرجستيرى عن طريق ( سيرش اندكس )
اى انها تبحث ثم تعمل فتح لاول عنصر تجده ثم اذا ضغط بحث مرة اخرى يفتح العنصى الذى يليه من نتائج البحث وهكذا حتى يصل الى اخر نتائج البحث
الرد }}}
تم الشكر بواسطة:
#6
(14-10-13, 03:42 PM)ali.alfoly كتب : تمام والله ممتاز
جزاك الله خير
طيب هى مش الى انا عاوزه
انا اريد
هل جربت البحث فى الرجستيرى عن طريق ( سيرش اندكس )
اى انها تبحث ثم تعمل فتح لاول عنصر تجده ثم اذا ضغط بحث مرة اخرى يفتح العنصى الذى يليه من نتائج البحث وهكذا حتى يصل الى اخر نتائج البحث

لا..

هذي صعبة نوعا ما

(14-10-13, 03:55 PM)الشاكي لله كتب :
(14-10-13, 03:42 PM)ali.alfoly كتب : تمام والله ممتاز
جزاك الله خير
طيب هى مش الى انا عاوزه
انا اريد
هل جربت البحث فى الرجستيرى عن طريق ( سيرش اندكس )
اى انها تبحث ثم تعمل فتح لاول عنصر تجده ثم اذا ضغط بحث مرة اخرى يفتح العنصى الذى يليه من نتائج البحث وهكذا حتى يصل الى اخر نتائج البحث

لا..

هذي صعبة نوعا ما

قصدك تبي تطبقها على الريجستري

ام على الtree view على الفورم خاصتك

إذا على الفورم سهلة
الرد }}}
تم الشكر بواسطة:
#7
انا اضرب لك مثال للرجستيرى فقط
انا اريدها للفورم للاداة TreeView
الرد }}}
تم الشكر بواسطة:
#8
[b]قمت بعمل ذلك

لكن استخدمت مبدأ من مبادئ LINQ

حتى اني لااعرف إن كانت الفيجوال بيسك يمكنها ذلك

اخي جرب تكتب yield في محرر الكود

اذا تلون ازرق خبرني



المثال بالسي شارب في المرفقات

شغله وشوف هو المطلوب لو لا !![/b]

يقولون ان الفيجوال بيسك 2012

يمكنه استعمال Yield

لكن انا عندي فيجوال 2010 فلم اتمكن من صنع المثال بالفيجوال بيسك

لذلك قمت بتحويل الكود لك :-


PHP كود :
Private enumerator As IEnumerator(Of TreeNode)


Private 
Sub findTextBox1_TextChanged(sender As ObjectAs EventArgsHandles findTextBox1.TextChanged
    enumerator 
FindSpecificChild(treeView1findTextBox1.Text).GetEnumerator()
End Sub


Private Sub findbutton1_Click(sender As ObjectAs EventArgsHandles findbutton1.Click
    
Try
        If 
enumerator.MoveNext() = False Then
                 
'اذا عثر على جميع العناصر عد الى البداية'
                 
enumerator FindSpecificChild(treeView1,findTextBox1.Text).GetEnumerator()
                 
enumerator.MoveNext()
        
End If
        
Dim node As TreeNode enumerator.Current
        node
.Parent.Expand()
        
treeView1.SelectedNode node
        treeView1
.Focus()
    Catch
    
End Try
End Sub



Private Function FindSpecificChild(treeView As TreeViewchildText As String) As IEnumerable(Of TreeNode)
        
    For 
Each rootNode As TreeNode In treeView.Nodes
        
For Each childnodes As TreeNode In rootNode.Nodes
            
If childnodes.Text childText Then
                
Yield Return childnodes
            End 
If
        
Next
    Next

End 
Function 


الملفات المرفقة
.zip   SearchNode.zip (الحجم : 95.52 ك ب / التحميلات : 192)
الرد }}}
تم الشكر بواسطة: @@أبورائد@@ , sooriaty03 , ali.alfoly , kslawy
#9
السلام عليكم
أسف على التأخير كنت مشغول جدا الأيام الماضية
بالفعل الفيجوال بيسك لا يدعم yield
وانا حاولت عن طريق عمل ليست
Dim lst As List(Of TreeNode)
منفعش انى اضيف مش عارف ايه السبب
PHP كود :
For Each rootNode As TreeNode In treeView1.Nodes
                
For Each childnodes As TreeNode In rootNode.Nodes
                    
If childnodes.Text Me.findTextBox1.Text Then
                        lst
.Add(childnodes.)
                    
End If
                
Next
            Next 
الرد }}}
تم الشكر بواسطة:
#10
(17-10-13, 04:48 PM)ali.alfoly كتب : السلام عليكم
أسف على التأخير كنت مشغول جدا الأيام الماضية
بالفعل الفيجوال بيسك لا يدعم yield
وانا حاولت عن طريق عمل ليست
Dim lst As List(Of TreeNode)
منفعش انى اضيف مش عارف ايه السبب
PHP كود :
For Each rootNode As TreeNode In treeView1.Nodes
                
For Each childnodes As TreeNode In rootNode.Nodes
                    
If childnodes.Text Me.findTextBox1.Text Then
                        lst
.Add(childnodes.)
                    
End If
                
Next
            Next 

كيف مينفعش !!

انا عندي ينفع ويعمل زي الفل ياعسل Cool

PHP كود :
Public Class Form1

    Dim nodeList 
As New List(Of TreeNode)
    
Dim enumerator As IEnumerator


    
Private Sub button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles button1.Click
     
Try   
        If 
enumerator.MoveNext() = False Then
            
'اذا عثر على جميع العناصر عد الى البداية'
            
enumerator nodeList.GetEnumerator()
            
enumerator.MoveNext()
        
End If
        
Dim node As TreeNode enumerator.Current
        node
.Parent.Expand()
        
treeView1.SelectedNode node
        treeView1
.Focus()
      Catch
      
End Try
    
End Sub


    
Private Sub textBox1_TextChanged(ByVal sender As System.ObjectByVal e As System.EventArgsHandles textBox1.TextChanged
        FindSpecificChild
(treeView1textBox1.TextnodeList)
        
enumerator nodeList.GetEnumerator()
    
End Sub


    
Private Sub FindSpecificChild(ByRef treeView As TreeViewByVal childText As StringByRef outList As List(Of TreeNode))

        For 
Each rootNode As TreeNode In treeView.Nodes
            
For Each childnodes As TreeNode In rootNode.Nodes
                
If childnodes.Text childText Then
                    outList
.Add(childnodes)
                
End If
            
Next
        Next
    End Sub

End 
Class 

^ لاحظ الكود هو نفسه مع اضافة بعض المقبلات

وتم استخدام List بدل Yeild

(المثال في المرفقات)


الملفات المرفقة
.zip   SearchNodeVB.NET.zip (الحجم : 157.13 ك ب / التحميلات : 172)
الرد }}}
تم الشكر بواسطة: kslawy , sooriaty03 , ali.alfoly



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم