تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة في الترقيم التلقائي DataGridView
#1
السلام عليكم لدي هذا الكود الذي يقوم بانشاء عمود وترقيم للداتا جريد المشكلة يبدأ من الصفر واريدة ان يبدأ من 1 علي سبيل المتال لو لدي 15 صف يبدأ من 1 الي 15 ولكن هذا الكود يبدا من 0 الي 14 كيف استطيع تعديلة ليبدأ من 1 الي 15
Dim column As New DataGridViewColumn
column.Name = "mm"
column.Width = 30
column.HeaderText = "mm"
column.CellTemplate = New DataGridViewTextBoxCell
dgv.Columns.Insert(0, column)
Dim i As Integer = 0
For i = 0 To dgv.Rows.Count
dgv.Item("mm", i).Value = i.ToString
Next
الرد }}}
تم الشكر بواسطة:
#2
قم باستخدام الكود بهذه الطريقة

كود :
Dim column As New DataGridViewColumn
column.Name = "mm"
column.Width = 30
column.HeaderText = "mm"
column.CellTemplate = New DataGridViewTextBoxCell
dgv.Columns.Insert(0, column)
Dim i As Integer = 0
Dim ii As Integer = 1
For i = 0 To dgv.Rows.Count
ii += 1
dgv.Item("mm", i).Value = ii.ToString
Next

تحياتى لك
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: sendbad100 , عبد العزيز البسكري , dubai.eig
#3
بارك الله فيك اخي الكريم
الرد }}}
تم الشكر بواسطة: elgokr
#4
(10-06-18, 09:22 PM)elgokr كتب : قم باستخدام الكود بهذه الطريقة

كود :
Dim column As New DataGridViewColumn
column.Name = "mm"
column.Width = 30
column.HeaderText = "mm"
column.CellTemplate = New DataGridViewTextBoxCell
dgv.Columns.Insert(0, column)
Dim i As Integer = 0
Dim ii As Integer = 1
For i = 0 To dgv.Rows.Count
ii += 1
dgv.Item("mm", i).Value = ii.ToString
Next

تحياتى لك



اسف على المداخله

بارك الله فيك وشكرا على الشرح والكود

عندي استفسار 

اذا انا محدد في DataGridView1
ال column

   

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

لاني جربت يطلع لي غلط 

إقتباس :'Index was out of range. Must be non-negative and less than the size of the collection.

Parameter name: index'


بارك الله فيك وشكرا
الرد }}}
تم الشكر بواسطة:
#5
(11-06-18, 01:33 AM)dubai.eig كتب : اسف على المداخله

بارك الله فيك وشكرا على الشرح والكود

عندي استفسار 

اذا انا محدد في DataGridView1
ال column



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

لاني جربت يطلع لي غلط 

إقتباس :'Index was out of range. Must be non-negative and less than the size of the collection.

Parameter name: index'


بارك الله فيك وشكرا

بدلاً من انشاء عدد من الـ Columns 
لتنشاء الاسماء التى تحتاج اليها

فى حالة كنت تستدعى البيانات من قاعدة البيانات
وناتج الاستعلام سيكون فى dt كمثال 
حيث ان dt هو
كود :
Dim dt As New DataTable

فكل ما عليك فعله التالى
لنقول ان DataGridView

سيتم ادخال بيانتها بهذا الكود
كود :
DataGridView1.DataSource = dt

كل ما عليك فعله اسفل الكود انشاء التالى
كود :
DataGridView1.Columns(0).HeaderText = "mm"
DataGridView1.Columns(1).HeaderText = "freq"
DataGridView1.Columns(2).HeaderText = "callsigns"
DataGridView1.Columns(3).HeaderText = "utc"
DataGridView1.Columns(4).HeaderText = "mode"

وبكده تكون قمت انت بتغيير اسماء الاعمدة بالاسماء التى تريدها
ده فى حالة ان DataGridView
يتم جلب البيانات من كود استعلام لقاعدة بيانات او اى كان نتائج البيانات

طيب لو كان البيانات مدخلة يدوى من خلال الاكواد 
او من خلال textbox وما شبق فى الفورم

كل ما عليك فعله استخدام الكود التالى
كود :
DataGridView1.ColumnCount = 5
DataGridView1.Columns(0).HeaderText = "mm"
DataGridView1.Columns(1).HeaderText = "freq"
DataGridView1.Columns(2).HeaderText = "callsigns"
DataGridView1.Columns(3).HeaderText = "utc"
DataGridView1.Columns(4).HeaderText = "mode"

ايضاً يمكنك استخدام نفس الاكواد السابقة بالطريقة التالية
كود :
DataGridView1.Columns(0).Name = "mm"

ولنقول انك ستقوم بادخال البيانات يدوياً من خلال الفورم
فقم باستخدام الكود التالى
كود :
Dim row As String()
row = New String() {TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, TextBox5.Text}
DataGridView1.Rows.Add(row)

طبعاً بخصوص لو من قاعدة البيانات فالامر تم توضيحه فى بداية الرد

طيب لو قلنا انك تستدعى من قاعدة البيانات
وجود الاستعلام عبارة عن فلتر محدد ومن خلال الاستعلام فى ID 
وطبيعي بسبب الاستعلام يكون النتائج مثل
5 , 12 , 13, 16, 35 , 41


وانت كل ما تريده ان تجعل الترقيم تسلسلى من 1 : 10 مثلاً كان النتائج 10
فكل ما عليك فعله هو

وضح الكود التالى
كود :
Dim i As Integer = 0
Dim ii As Integer = 1
For i = 0 To DataGridView1.Rows.Count
   ii += 1
   ' رقم 0 هنا يعنى العمود الاول
   DataGridView1.Item(0, i).Value = ii.ToString
   ' لنقول انك محتاج تعدل على العمود اخر
   ' الاعمدة بيعد من رقم 0 بحيث هيكون الاعداد 0 1 2 3 4
   ' وبكده يعنى لديك 5 اعمدة لكن فى البرمجة بيكون الرقم الاخير 4
   ' فمثلاً محتاج ان تجعل الترقيم فى عمود  mode
   ' هيكون الكود بالشكل التالى
   DataGridView1.Item(4, i).Value = ii.ToString
Next

اتمنى ان يكون الشرح فى كل ما تحتاج اليه
وكل ما قد يفيدك مستقبلياً

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: dubai.eig , sendbad100
#6
كود :
Sub ReNoGridCellsHeader()
       Try
           For Each R As DataGridViewRow In TtDataGridView.Rows
               R.Cells(0).Style.ForeColor = Color.Red
               R.Cells(0).Style.BackColor = Color.Goldenrod
               R.Cells(0).Value = String.Format((R.Index + 1).ToString("00"))
           Next
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try
   End Sub
جرب هذا الكود اتمنى ان يكون فيه إفادة
الرد }}}
تم الشكر بواسطة: elgokr



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


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