الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

*** حل أكيد وبسيط لمشكلة كبيرة وهي كيف تظهر الأرقام التسلسلية في Datagirdview **

بدأه vbzaidan في 28 يونيو 2008 · 1 رد · 716 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

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

م : المشكلة طبعا كما هو معروف فإن لدى الجميع فإن DataGridView لاتدعم ظهور الأرقام التسلسلية في قاعدة بياناتك وهناك الكثير من الحلول المعقدة

( بعد بحث طويل وفقني الله عزوجل لطريقة سهل جدا لحل هذه المعضلة ) ؟

ميزات هذه الطريقة :

- سهلة

-لاتقلق في حالة ترتيب الصفوف حسب الإسم الأول أو الإسم الثاني أو التاريخ فلن يتغير التسلسل الرقمي كما في الطرق الأخرى .

ح : الحل تابع معي جيدا سأستخدم لغة #C للتوضيح

-1-

الخطوة الأولى : في حدث Form Load ضع هذا الكود

DataGridViewTextBoxCell newCell = new DataGridViewTextBoxCell();
			DataGridViewColumn RNOCol = new DataGridViewColumn(newCell);
			RNOCol.DisplayIndex = 0;
			RNOCol.HeaderText = "RowsNumber";
			RNOCol.Name = "RowsNumber";
			dataGridView1.Columns.Add(RNOCol);

التوضيح : هذ الكود يقوم بإنشاء عمود مؤقت من الجهة اليسرى ورقم هذا العمود هو 0 يعني سيكون أول عمود في الجدول وإسم العمود RowsNumber

ملاحظة : سيعمل الكود مباشرة إذا كان إسم DataGridView هو dataGridView1 طبعا يمكنك تغيير إسم dataGridView1

-2-

الخطوة الثانية إجراء (function) قم بكتابة هذا الإجراء في أي مكان تريده :

public void fnRowsnumber()
		{



			int cnt = dataGridView1.Rows.Count;
			int i;
			for (i = 1; i <= cnt; i++)
			{
				dataGridView1.Rows[i - 1].Cells["RowsNumber"].Value = i;

			}


		}

التوضيح : طبعا يفضل دائما إبتداء إسم الإجراء بـ fn والسبب ليسهل عليك التمييز بينهم وسهولة الوصول إليهم عندما يزيد عددهم

هذا الإجراء يقوم بترقيم العمود الذي قمنا بإنشائه للتو .

ملاحظة : الصفوف في DataGrideView تبدأ من الصفر

-3-

الخطوة الثالثة والأخيرة من أي حدث أقوم بإستدعاء الإجراء : () fnRowsNumber ؟

هناك حدث خاص Datagridview إسمه RowPrePaint

الآن قم بوضع بإستدعاء الإجراء كما هو موضح في الكود التالي :

 private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
		{
			fnRowsNumber();
		}

التوضيح : هذا الحدث يقوم قبل رسم الصفوف سوف يقوم بكتابة الأرقام التسلسلية للصفوف .

ملاحظة : لاتخطىء وتستدعي الإجراء من الحدث FormLoad أو من أي حدث آخر كما فعلت أنا سابقا إستخدم فقط الحدث RowPrePaint

********************************************************************************

*

هذا والله أعلم وصلى اللهم على نبينا محمد وعلى آله وصحبه وسلم

أخوكم :

زيدان

تم تعديل هذه المشاركة بواسطة vbzaidan في 28 يونيو 2008 في 07:24

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…