14-10-13, 02:41 PM (آخر تعديل لهذه المشاركة : 14-10-13, 02:42 PM {2} بواسطة الشاكي لله.)
(14-10-13, 02:32 PM)ali.alfoly كتب : السلام عليكم
اريد البحث فى القائمة الشجرية
وعمل زر نكست يضغط عليه يفتح نتيجة البحث التالية حتى يصل الى النهاية تظهر سالة
تمام والله ممتاز
جزاك الله خير
طيب هى مش الى انا عاوزه
انا اريد
هل جربت البحث فى الرجستيرى عن طريق ( سيرش اندكس )
اى انها تبحث ثم تعمل فتح لاول عنصر تجده ثم اذا ضغط بحث مرة اخرى يفتح العنصى الذى يليه من نتائج البحث وهكذا حتى يصل الى اخر نتائج البحث
14-10-13, 03:55 PM (آخر تعديل لهذه المشاركة : 14-10-13, 04:00 PM {2} بواسطة الشاكي لله.)
(14-10-13, 03:42 PM)ali.alfoly كتب : تمام والله ممتاز
جزاك الله خير
طيب هى مش الى انا عاوزه
انا اريد
هل جربت البحث فى الرجستيرى عن طريق ( سيرش اندكس )
اى انها تبحث ثم تعمل فتح لاول عنصر تجده ثم اذا ضغط بحث مرة اخرى يفتح العنصى الذى يليه من نتائج البحث وهكذا حتى يصل الى اخر نتائج البحث
لا..
هذي صعبة نوعا ما
(14-10-13, 03:55 PM)الشاكي لله كتب :
(14-10-13, 03:42 PM)ali.alfoly كتب : تمام والله ممتاز
جزاك الله خير
طيب هى مش الى انا عاوزه
انا اريد
هل جربت البحث فى الرجستيرى عن طريق ( سيرش اندكس )
اى انها تبحث ثم تعمل فتح لاول عنصر تجده ثم اذا ضغط بحث مرة اخرى يفتح العنصى الذى يليه من نتائج البحث وهكذا حتى يصل الى اخر نتائج البحث
14-10-13, 04:58 PM (آخر تعديل لهذه المشاركة : 14-10-13, 07:00 PM {2} بواسطة الشاكي لله.)
[b]قمت بعمل ذلك
لكن استخدمت مبدأ من مبادئ LINQ
حتى اني لااعرف إن كانت الفيجوال بيسك يمكنها ذلك
اخي جرب تكتب yield في محرر الكود
اذا تلون ازرق خبرني
المثال بالسي شارب في المرفقات
شغله وشوف هو المطلوب لو لا !![/b]
يقولون ان الفيجوال بيسك 2012
يمكنه استعمال Yield
لكن انا عندي فيجوال 2010 فلم اتمكن من صنع المثال بالفيجوال بيسك
لذلك قمت بتحويل الكود لك :-
PHP كود :
Private enumerator As IEnumerator(Of TreeNode)
Private Sub findTextBox1_TextChanged(sender As Object, e As EventArgs) Handles findTextBox1.TextChanged enumerator = FindSpecificChild(treeView1, findTextBox1.Text).GetEnumerator() End Sub
Private Sub findbutton1_Click(sender As Object, e As EventArgs) Handles 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 TreeView, childText 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
السلام عليكم
أسف على التأخير كنت مشغول جدا الأيام الماضية
بالفعل الفيجوال بيسك لا يدعم 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
17-10-13, 08:04 PM (آخر تعديل لهذه المشاركة : 18-10-13, 08:40 PM {2} بواسطة الشاكي لله.)
(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
كيف مينفعش !!
انا عندي ينفع ويعمل زي الفل ياعسل
PHP كود :
Public Class Form1
Dim nodeList As New List(Of TreeNode) Dim enumerator As IEnumerator
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 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.Object, ByVal e As System.EventArgs) Handles textBox1.TextChanged FindSpecificChild(treeView1, textBox1.Text, nodeList) enumerator = nodeList.GetEnumerator() End Sub
Private Sub FindSpecificChild(ByRef treeView As TreeView, ByVal childText As String, ByRef 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