منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
تعبئة الداتا قريد - نسخة قابلة للطباعة

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



تعبئة الداتا قريد - aftfm - 31-03-21

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

كيف اقوم بتعبئة سجل الداتا قريد بارقام متسلسلة من 00  الى نهاية السجل بعد تحديد موقع البداية على الداتا قريد سواء من Columns1 او من Columns 2  او من اي مكان اجددة على نفس السجل

قمت بوضع الكود 


كود :
For i = 0 To DataGridView1.Columns.Count - 1
            DataGridView1.Rows(0).Cells(i).Value = "00"
        Next
  
مع اني محدد موقع ليس من بداية السجل كما في الصورة المرفقة 
وكذلك ارغب في اضافة رقم بعد كل حقل
من خلال


RE: تعبئة الداتا قريد - messry - 31-03-21

حاول استبدال "00" بـ i
For i = 0 To DataGridView1.Columns.Count - 1
DataGridView1.Rows(0).Cells(i).Value = i
Next
بالتوفيق


RE: تعبئة الداتا قريد - aftfm - 31-03-21

الف شكر 

1- لكن هذا يعطي فقط السطر ا لاول 
والمطلوب أن يبدأ من الحقل الذي يتم وضع المؤشر عليه

وفي أي سطر

2- ارغب في جعل بداية الارقام 00 01 02 03
بدل من 0 1 2 3


RE: تعبئة الداتا قريد - messry - 31-03-21

اخي لو حبيت الارقام بطريقتك معناها ليس ارقام ولكن تصبح Text
وتستطيع ان تفعل ذلك بجملة شرطية بمعنى
if i < 10 then
DataGridView1.Rows(0).Cells(i).Value = "0" & i
end if

أما بالنسبة للسؤال الأول يعطي السطر الأول فقط أنت الذي حددت السطر
DataGridView1.Rows(0).Cells(i).Value = i
وهنا تستطيع تغيير 0 بأي رقم تريده وفي حالتك يكون 1 معناها السطر الثاني لديك


أما بالنسبة يبدأ من الحفل الذي تريده تستطيع ان تدخل String في العبارة الخاصة بك من تحديد العمود رقم (وهذه لها اكثر من طريقة)

بالتوفيق


RE: تعبئة الداتا قريد - messry - 31-03-21

مثال بسيط عله يساعدك

هذا عند الضغط مرتين على الخانة المراد البدء منها في أي سطر تريد 

   Private Sub DataGridView1_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick

      dim ICol = DataGridView1.CurrentCell.ColumnIndex
      dim IrowS = DataGridView1.CurrentCell.RowIndex

For i = 0 To DataGridView1.Columns.Count - ICol
DataGridView1.Rows(IrowS).Cells(ICol).Value = i
if i < 10 then
DataGridView1.Rows(0).Cells(i).Value = "0" & i
end if
Next

End Sub


RE: تعبئة الداتا قريد - aftfm - 31-03-21

الف شكر اخي العزيز على اجابتك تم الاستفاده منها والحمد لله


   
كود :
  CType(DataGridView1.DataSource, DataTable).Rows.Add(New Object() {})
        For i = 0 To DataGridView1.Columns.Count - 1
            If i < 10 Then
                DataGridView1.Rows(0).Cells(i).Value = "0" & i
            Else
                DataGridView1.Rows(0).Cells(i).Value = i
            End If
        Next
وضعت هذا الكود 
اعطاني السجل الاول بشكل ممتاز يبقى السجل الثاني والثالث الخ

ولكن بهذه الشكل كما في الصورة المرفقة


RE: تعبئة الداتا قريد - messry - 31-03-21

حاول الكود التالي

dim ICol = DataGridView1.CurrentCell.ColumnIndex
     dim IrowS = DataGridView1.CurrentCell.RowIndex

For i = ICol To DataGridView1.Columns.Count - 1
DataGridView1.Rows(IrowS).Cells(i).Value = i
if i < 10 then
DataGridView1.Rows(IrowS).Cells(i).Value = "0" & i
end if
Next