تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مشكلة عند البحث بالداتا جريد فيو
#1
استخدمت الكود التالي للبحث بصفوف الداتا جريد فيو عن قيمة معينة بالتيكست بوكس لو موجودة يلون الصف باللون الاحمر ولو غير موجودة يرجع الي اللون الاصلي ويزيل اللون الاحمر

الكود يبحث وياتي بالمطلوب ولكن اذا لم اضع شيء بالتيكست بوكس يلون جميع الصفوف ولا يزيل اللون الاحمر بالصفوف
اريد اذا لم يكن هناك قيمة بالتيكست بوكس يزيل اللون الاحمر المحدد للصفوف من سابق البحث ولايبحث اصلا
مع العلم ان كل الخلايا الخاصة بالبحث بها قيم وليست فارغة او بها خلايا فارغة


كود :
Dim DarkTurquoise As Integer = 0
       For i As Integer = 0 To DataGridView1.RowCount - 1
           If TextBox3.Text = "" Then
               DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.Empty
               Label2.Text = "عدد"
               Exit Sub
           ElseIf DataGridView1.Rows(i).Cells(4).Value.ToString.Contains(TextBox3.Text.ToLower) Then
               DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.Red
               If DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.Red Then
                   DarkTurquoise += 1
               End If
           ElseIf Not DataGridView1.Rows(i).Cells(4).Value.ToString.Contains(TextBox3.Text.ToLower) Then
               DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.Empty
               Label2.Text = "عدد"
           End If
       Next
       Label2.Text = DarkTurquoise
الرد }}}
تم الشكر بواسطة:
#2
احذف Exit Sub
الرد }}}
تم الشكر بواسطة: محمد اسماعيل
#3
(19-02-18, 08:44 PM)طالب برمجة كتب : احذف Exit Sub

طيب انا بدلتها  Exit For

ومخرجش من الحلقة

وفعلا كما قلت احذفExit Sub والكود اشتغل جيد جدا

ما المشكلة لم افهم لما لم يخرج من الحلقة التكرارية
الرد }}}
تم الشكر بواسطة:
#4
بالنسبة Exit Sub يخرج من ال Sub كامل
أما بالنسبة Exit For يخرج من الحلقة For ويكمل بعدها، لكن بما انه لا يوجد كود بعد Next فستكون النتيجة متشابهة

PHP كود :
Dim DarkTurquoise As Integer 0
For As Integer 0 To DataGridView1.RowCount 1
    If TextBox3
.Text "" Then
        DataGridView1
.Rows(i).DefaultCellStyle.BackColor Color.Empty
 
   ElseIf DataGridView1.Rows(i).Cells(4).Value.ToString.Contains(TextBox3.Text.ToLowerThen
        DataGridView1
.Rows(i).DefaultCellStyle.BackColor Color.Red
        DarkTurquoise 
+= 1
    End 
If
Next
Label2
.Text "عدد: " DarkTurquoise 
الرد }}}
تم الشكر بواسطة:
#5
(19-02-18, 09:44 PM)طالب برمجة كتب : بالنسبة Exit Sub يخرج من ال Sub كامل
أما بالنسبة Exit For يخرج من الحلقة For ويكمل بعدها، لكن بما انه لا يوجد كود بعد Next فستكون النتيجة متشابهة

PHP كود :
Dim DarkTurquoise As Integer 0
For As Integer 0 To DataGridView1.RowCount 1
    If TextBox3
.Text "" Then
        DataGridView1
.Rows(i).DefaultCellStyle.BackColor Color.Empty
 
   ElseIf DataGridView1.Rows(i).Cells(4).Value.ToString.Contains(TextBox3.Text.ToLowerThen
        DataGridView1
.Rows(i).DefaultCellStyle.BackColor Color.Red
        DarkTurquoise 
+= 1
    End 
If
Next
Label2
.Text "عدد: " DarkTurquoise 

مجهود كبير اشكر ك علية

بس سؤال بسيط ما الفرق بين  في نهاية الحلقة  next   , next i


يعني بشوف حلقات فيها نيكست والمتغير واخري نيكست فقط مش فاهم الفرق ممكن توضحلي
الرد }}}
تم الشكر بواسطة:



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


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