هذا صحيح لأني أريد أن يكون المتغير row مصفوفة من نوع DataGridViewRow ،
حتى أخزن فيه مجموعة السجلات التي سيختارها المستخدم من شاشة البحث .
السلام عليكم ورحمة الله
أخي أشرف
قصدي أن وضع تلك الأقواس خطأ يجب حذفها، لأن SelectedRows هي المصفوفة ودور المتغير row يأخذ سطر واحد من المصفوفة
تمام ..
بس أنا أبغى أوقف على كل SelectedRows منهم
بحيث أدخل شرطاً يقول إذا كان السجل المختار هو [SelectedRows[0 ، نضع بياناته
في السجل الحالي الذي يقف عليه المستخدم
أما باقي السجلات التالية : [SelectedRows[1 وَ [SelectedRows[2 وَ [SelectedRows[3 .. الخ ، فيتم إدراجها في نهاية الجريد الخاص بالفاتورة.
فكيف أفعل ذلك رجاء ؟!!
السلام عليكم ورحمة الله
أخي أشرف
هذا مثال للطريقة التي تريدها في آخر رد لكم، يجب القراءة أكثر عن طريقة عمل foreach
PHP كود :
foreach (DataGridViewRow r in frm.simpleMultiselectDataGridView1.SelectedRows)
{
if (r.Index == 0)
{
// هنا يكون row هو SelectedRows[0]
}
else
{
// هنا يكون row هو لباقي الأسطر
}
}
أخي مهموم أشكرك على اهتمامك بالموضوع ، وردودك السريعة ، ولكن للأسف مستحيل أن ينجح هذا الكود في عمل الفكرة التي أريد تنفيذها .. لاحظ :
قمت بإظهار أرقام الـ Index الخاصة بالسجلات المختارة ، في مسج بوكس ، فأظهر لي أرقام الـ Index على مستوى الـ DataGidView ، وهذا ليس هو المطلوب :
النتيجة :
المطلوب عمل Index مستقل للسجلات المختارة ، بعيداً عن الـ Index الخاص بالـ DataGridView
السلام عليكم ورحمة الله
أخي أشرف
هذه فعلا هي أرقام الأسطر المختارة فما المشكلة!
إذا كان المقصود أن الترتيب معكوس ضع هذا السطر بدل الموجود سابقاً
PHP كود :
foreach (DataGridViewRow r in frm.simpleMultiselectDataGridView1.SelectedRows.Cast<DataGridViewRow>().Reverse())
المشكلة أني ما راح أعرف ايش أول سجل محدد من الـ Grid الموجود في شاشة البحث ، لأني ما أدري أي سجل هو اللي حيختاره المستخدم ، لأن أول سجل محدد سأقوم بوضع بياناته فيالسجل الحالي الذي يقف عليه المستخدم بالماوس ..
فلو قلت : if (r.Index == 0)
لن ينفع ذلك لأن المستخدم قد لا يختار أول سجل في الجريد ..
عموماً .. كل اللي أبغاه إن كان الميثود [0]SelectedRows عبارة عن مصفوفة ، أريد طريقة لعمل Loop على السجلات التي بداخل هذه المصفوفة :
السلام عليكم ورحمة الله
أخي أشرف
بعد تبديل السطر الذي ذكرته لك في الرد الأخير فإن r.Index == 0 يعني أول سطر تم اختياره والذي هو [0]SelectedRows بغض النظر عن ترتيبه في DataGridView1.Rows
أتمنى هذه المرة قد وضحت لك الصورة
PHP كود :
foreach (DataGridViewRow r in frm.simpleMultiselectDataGridView1.SelectedRows.Cast<DataGridViewRow>().Reverse())
{
if (r.Index == 0)
{
// هنا يكون row هو SelectedRows[0]
}
else
{
// هنا يكون row هو لباقي الأسطر
}
}
غير صحيح مع الأسف لاحظ النتيجة :
الذي تغير هنا هو تعديل الترتيب فقط ، ولكن المشكلة قائمة..
المطلوب تطلع المسجات هكذا 0 - 1 - 2
السلام عليكم ورحمة الله
أخي أشرف
إن 0-1-2 هي ترتيب في الجدول وهي (1001001 و 1001002 و 1001003)
3-5-9 عي التي تم اختيارها وتجدها في المصفوفة SelectedRows وهي (1001004 و 1001006 و 1001010)
وبهذا يكون
r.Index == 0 .... SelectedRows[0] = 1001004
r.Index == 1 .... SelectedRows[1] = 1001006
r.Index == 2 .... SelectedRows[2] = 1001010
يبدو أنك لم تتمكن من التفريق بين SelectedRows و Rows الخاصة بالجدول DataGridView