(24-01-18, 02:42 PM)عبدالله الدوسري كتب : أخ محمد اسماعيل
ماذا تستفيد من الترقيم التلقائي , أو لماذا تريد عرض عامود للترقيم التلقائي؟
إذكر الفكرة , لربما ندلك على الطريق الصحيح للوصول إلى هدفك بطريقة أخرى.
ALTER TABLE purchcard_tb DROP COLUMN
ثم
ALTER TABLE purchcard_tb ADD COLUMN
خطأ فادح : ليس هكذا يتم التعامل مع الحقل الأساسي للجدول
اشرح هدفك من وراء الترقيم التلقائي وسأدلك إلى الطريق الأفضل لتطبيق الفكرة.
مثلا
عمود ترقيم الصنف
1 سمك
2 فراخ
3 لحوم
1- توضيح ورؤية العدد للصفوف مع العلم وجود كود كونت لعدد الصفوف والصف المختار اسفل الشبكة ولكن نظام عام يجب و جود الترتيب
2- لو ضغط علي راس عمود لترتيب الاصناف ورجعت ضغط تاني لاترجع الصفوف الي ماكانت علية حيث ترتب تصاعديا او تنازليا فقط علي حد علمي
طيب هرجعها تاني ازاي بنفس نظام الصفوف المتبع الحل الوحيد امامي النظر الي عمود الترقيم التلقائي واعادة ترتيبة حيث يعبر اساسا عن قيم كل صف وبالتالي رجوع قيم الاصناف الي صفوفها الطبيعية
حاولت استخدا م طريقة ترقيم الهيدر ولكن عند الضغط علي راس العمود لايظهر اساسا الترقيم او يظهر ويحدث مشكلة
حاولت اعمل عمود ترقيم رقمي عادي بالكود دة ولكن عند الضغط علي راس العمود للترتيب يظهر خطا ما الحل امامي
كود :
For Each r As DataGridViewRow In Me.DataGridView1.Rows
If Not r.IsNewRow Then r.Cells(1).Value = (r.Index + 1).ToString
Next
24-01-18, 04:45 PM (آخر تعديل لهذه المشاركة : 24-01-18, 05:37 PM {2} بواسطة محمود صالح.)
اخي محمد
اتفضل ثلاث امثلة
1- الترقيم في الهيدر مع اعادة الترقيم من جديد عند الضغط على التصاعدي والتنازلي
2- الترقيم في عمود خاص وعند الضغط على راس العمود يرجع ليك الترتيب التصاعدي والتنازلي
3- الترقيم في الهيدر مع الغاء الترتيب التصاعدي والتنازلي
(24-01-18, 04:45 PM)محمود صالح كتب : اخي محمد
اتفضل ثلاث امثلة
1- الترقيم في الهيدر مع اعادة الترقيم من جديد عند الضغط على التصاعدي والتنازلي
2- الترقيم في عمود خاص وعند الضغط على راس العمود يرجع ليك الترتيب التصاعدي والتنازلي
3- الترقيم في الهيدر مع الغاء الترتيب التصاعدي والتنازلي
Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load DGV1.Rows.Add("احمد", 500) DGV1.Rows.Add("عمر", 900) DGV1.Rows.Add("محمد", 1300) For I As Integer = 0 To DGV1.Rows.Count - 2 DGV1.Rows(I).HeaderCell.Value = (I + 1).ToString Next End Sub Private Sub DGV1_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DGV1.ColumnHeaderMouseClick For I As Integer = 0 To DGV1.Rows.Count - 2 DGV1.Rows(I).HeaderCell.Value = (I + 1).ToString Next End Sub End Class
مثال الثاني
الكود
PHP كود :
Public Class EX_2
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load DGV1.RowHeadersVisible = False DGV1.Rows.Add("", "احمد", 500) DGV1.Rows.Add("", "عمر", 900) DGV1.Rows.Add("", "محمد", 1300) For I As Integer = 0 To DGV1.Rows.Count - 2 DGV1.Rows(I).Cells(0).Value = (I + 1).ToString Next End Sub
End Class
مثال الثالث
الكود
PHP كود :
Public Class EX_3
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load DGV1.Rows.Add("احمد", 500) DGV1.Rows.Add("عمر", 900) DGV1.Rows.Add("محمد", 1300)
For I As Integer = 0 To DGV1.Rows.Count - 2 DGV1.Rows(I).HeaderCell.Value = (I + 1).ToString Next
NO_SORTORDER(DGV1)
End Sub
Public Sub NO_SORTORDER(ByVal DataGridView As DataGridView) For Each DGV As DataGridViewColumn In DataGridView.Columns DGV.SortMode = DataGridViewColumnSortMode.NotSortable Next End Sub End Class
(24-01-18, 09:50 PM)محمود صالح كتب : اخي صمم الدتا قريد كما في الصورة
مثال الاول
الكود
PHP كود :
Public Class EX_1
Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load DGV1.Rows.Add("احمد", 500) DGV1.Rows.Add("عمر", 900) DGV1.Rows.Add("محمد", 1300) For I As Integer = 0 To DGV1.Rows.Count - 2 DGV1.Rows(I).HeaderCell.Value = (I + 1).ToString Next End Sub Private Sub DGV1_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DGV1.ColumnHeaderMouseClick For I As Integer = 0 To DGV1.Rows.Count - 2 DGV1.Rows(I).HeaderCell.Value = (I + 1).ToString Next End Sub End Class
مثال الثاني
الكود
PHP كود :
Public Class EX_2
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load DGV1.RowHeadersVisible = False DGV1.Rows.Add("", "احمد", 500) DGV1.Rows.Add("", "عمر", 900) DGV1.Rows.Add("", "محمد", 1300) For I As Integer = 0 To DGV1.Rows.Count - 2 DGV1.Rows(I).Cells(0).Value = (I + 1).ToString Next End Sub
End Class
مثال الثالث
الكود
PHP كود :
Public Class EX_3
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load DGV1.Rows.Add("احمد", 500) DGV1.Rows.Add("عمر", 900) DGV1.Rows.Add("محمد", 1300)
For I As Integer = 0 To DGV1.Rows.Count - 2 DGV1.Rows(I).HeaderCell.Value = (I + 1).ToString Next
NO_SORTORDER(DGV1)
End Sub
Public Sub NO_SORTORDER(ByVal DataGridView As DataGridView) For Each DGV As DataGridViewColumn In DataGridView.Columns DGV.SortMode = DataGridViewColumnSortMode.NotSortable Next End Sub End Class
وجرب تشغل المثال بعد التعديل
انت شخص كريم جدا لصبرك وتعبك معايا وفقك اللّة لكل خير
الكود الي اشتغل معايا
كود :
For I As Integer = 0 To DataGridView1.Rows.Count - 1
DataGridView1.Rows(I).Cells(1).Value = (I + 1).ToString
Next
ملاحظة علي الطريقة
1- لازم اضيف الاجراء دة في كل حدث لود للفورم وحدث البحث والحذف والاضافة
2- عند الاضافة الايدي والعنصر الجديد يكون الرقم من عمود الترقيم التلقائي بخلاف نظام الترتيب بالاجراء السابق