منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] محتاج تعديل كود DataGridView - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] محتاج تعديل كود DataGridView (/showthread.php?tid=28761)



محتاج تعديل كود DataGridView - dubai.eig - 25-02-19

السلام عليكم 

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


عندي مشكله صغيره في ال 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


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

افيدوني بارك الله فيكم وشكرا


RE: محتاج تعديل كود DataGridView - elgokr - 25-02-19

وعليكم السلام ورحمة الله وبركاته

فقط استبدل الاسطر المذكور بهذا 
كود :
       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

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



RE: محتاج تعديل كود DataGridView - dubai.eig - 25-02-19

(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


RE: محتاج تعديل كود DataGridView - elgokr - 27-02-19

الحمد لله دائماً وابداً 
والحمد لله دائماً على كل شئ

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