منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : محتاج تعديل كود DataGridView
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 

يسعد الله اوقاتكم


عندي مشكله صغيره في ال DataGridView

انا اطلب له تلوين الاسطر والمشكله ان يبدى التلوين من السطر الثاني

يعني البدايه تكون من السطر الثاني

[attachment=20979]


وهذا الكود


كود :
For intI = DataGridView1.Rows.Count - 1 To 0 Step -1
           For intJ = intI - 1 To 0 Step -1

               If IsDBNull(DataGridView1.Rows(intI).Cells(8).Value) Then

               ElseIf DataGridView1.Rows(intI).Cells(8).Value = "M" Then

                   DataGridView1.Rows(intI).DefaultCellStyle.BackColor = Color.FromArgb(&HFF, &HFF, &H66)

               End If
               If IsDBNull(DataGridView1.Rows(intI).Cells(8).Value) Then

               ElseIf DataGridView1.Rows(intI).Cells(8).Value = "B" Then

                   DataGridView1.Rows(intI).DefaultCellStyle.BackColor = Color.LimeGreen

               End If
               If IsDBNull(DataGridView1.Rows(intI).Cells(8).Value) Then

               ElseIf DataGridView1.Rows(intI).Cells(8).Value = "M/B" Then

                   DataGridView1.Rows(intI).DefaultCellStyle.BackColor = Color.Violet

               End If

               If IsDBNull(DataGridView1.Rows(intI).Cells(8).Value) Then

               ElseIf DataGridView1.Rows(intI).Cells(8).Value = "C" Then

                   DataGridView1.Rows(intI).DefaultCellStyle.BackColor = Color.FromArgb(&HCC, &H0, &H0)

               End If
           Next
       Next



اعتقد محتاج تعديل في هذا السطر

كود :
       For intI = DataGridView1.Rows.Count - 1 To 0 Step -1
           For intJ = intI - 1 To 0 Step -1


حاولت اغير بس ما ضبط معاي

افيدوني بارك الله فيكم وشكرا
وعليكم السلام ورحمة الله وبركاته

فقط استبدل الاسطر المذكور بهذا 
كود :
       For intI = DataGridView1.RowCount - 1 To 0 Step -1
           For intJ = DataGridView1.ColumnCount - 1 To 0 Step -1

لكن سؤال واحد فقط لماذا تستخدم intJ بداخل intI
بما انك تقوم بتلوين الصفوف مباشراً وليس خلية واحدة

فيكفي فقط استخدام على هذا النحو
كود :
       For intI = DataGridView1.RowCount - 1 To 0 Step -1


خلاف نقطة التحقق المتكررة اذا كان فارغ او بدون 
لا يقوم بعمل اى شئ
واذا كان بقيمة محددة يقوم بتطبيق لون معين
مثل ما هو موضح هنا
كود :
              If IsDBNull(DataGridView1.Rows(intI).Cells(8).Value) Then

              ElseIf DataGridView1.Rows(intI).Cells(8).Value = "C" Then
                  DataGridView1.Rows(intI).DefaultCellStyle.BackColor = Color.FromArgb(&HCC, &H0, &H0)
              End If

على العموم استبدل الكود كاملاً المذكور بموضوعك بهذا الشكل ليكون افضل معك
كود :
       For intI = 0 To DataGridView1.RowCount - 1
           If DataGridView1.Rows(intI).Cells(8).Value = "M" Then
               DataGridView1.Rows(intI).DefaultCellStyle.BackColor = Color.FromArgb(&HFF, &HFF, &H66)
           ElseIf DataGridView1.Rows(intI).Cells(8).Value = "B" Then
               DataGridView1.Rows(intI).DefaultCellStyle.BackColor = Color.LimeGreen
           ElseIf DataGridView1.Rows(intI).Cells(8).Value = "M/B" Then
               DataGridView1.Rows(intI).DefaultCellStyle.BackColor = Color.Violet
           ElseIf DataGridView1.Rows(intI).Cells(8).Value = "C" Then
               DataGridView1.Rows(intI).DefaultCellStyle.BackColor = Color.FromArgb(&HCC, &H0, &H0)
           Else
               DataGridView1.Rows(0).DefaultCellStyle.BackColor = Color.White
           End If
       Next

تحياتى لك
وتمنياتى لك التوفيق
(25-02-19, 10:58 PM)elgokr كتب : [ -> ]
وعليكم السلام ورحمة الله وبركاته

فقط استبدل الاسطر المذكور بهذا 
كود :
       For intI = DataGridView1.RowCount - 1 To 0 Step -1
           For intJ = DataGridView1.ColumnCount - 1 To 0 Step -1

لكن سؤال واحد فقط لماذا تستخدم intJ بداخل intI
بما انك تقوم بتلوين الصفوف مباشراً وليس خلية واحدة

فيكفي فقط استخدام على هذا النحو
كود :
       For intI = DataGridView1.RowCount - 1 To 0 Step -1


خلاف نقطة التحقق المتكررة اذا كان فارغ او بدون 
لا يقوم بعمل اى شئ
واذا كان بقيمة محددة يقوم بتطبيق لون معين
مثل ما هو موضح هنا
كود :
              If IsDBNull(DataGridView1.Rows(intI).Cells(8).Value) Then

              ElseIf DataGridView1.Rows(intI).Cells(8).Value = "C" Then
                  DataGridView1.Rows(intI).DefaultCellStyle.BackColor = Color.FromArgb(&HCC, &H0, &H0)
              End If

على العموم استبدل الكود كاملاً المذكور بموضوعك بهذا الشكل ليكون افضل معك
كود :
       For intI = 0 To DataGridView1.RowCount - 1
           If DataGridView1.Rows(intI).Cells(8).Value = "M" Then
               DataGridView1.Rows(intI).DefaultCellStyle.BackColor = Color.FromArgb(&HFF, &HFF, &H66)
           ElseIf DataGridView1.Rows(intI).Cells(8).Value = "B" Then
               DataGridView1.Rows(intI).DefaultCellStyle.BackColor = Color.LimeGreen
           ElseIf DataGridView1.Rows(intI).Cells(8).Value = "M/B" Then
               DataGridView1.Rows(intI).DefaultCellStyle.BackColor = Color.Violet
           ElseIf DataGridView1.Rows(intI).Cells(8).Value = "C" Then
               DataGridView1.Rows(intI).DefaultCellStyle.BackColor = Color.FromArgb(&HCC, &H0, &H0)
           Else
               DataGridView1.Rows(0).DefaultCellStyle.BackColor = Color.White
           End If
       Next

تحياتى لك
وتمنياتى لك التوفيق


تسلم اايدك بارك الله فيك

دائما والحمدالله نستفيد منكم

ضبط والحمدالله وكل شي تمام

احسنت استاذي لا حرمنا منك  Rolleyes
الحمد لله دائماً وابداً 
والحمد لله دائماً على كل شئ

تحياتى لك
وتمنياتى لك التوفيق