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

نسخة كاملة : مشكلة في الترقيم التلقائي DataGridView
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم لدي هذا الكود الذي يقوم بانشاء عمود وترقيم للداتا جريد المشكلة يبدأ من الصفر واريدة ان يبدأ من 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
قم باستخدام الكود بهذه الطريقة

كود :
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

تحياتى لك
بارك الله فيك اخي الكريم
(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

[attachment=18487]

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

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

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

Parameter name: index'


بارك الله فيك وشكرا
(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

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

تحياتى لك
وتمنياتى لك التوفيق
كود :
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
جرب هذا الكود اتمنى ان يكون فيه إفادة