System.argumentoutofrangeexception: ‘كان الفهرس خارج النطاق. يجب أن تكون غير سلبية وأقل من حجم المجموعة. اسم المعلمة: الفهرس


private void ItemGV_CellClick(object sender, DataGridViewCellEventArgs e)
       {
           if (e.RowIndex >= 0)
           {
               txtItemnum.Text = ItemGV.SelectedRows[0].Cells[0].Value.ToString();
               txtItemname.Text = ItemGV.SelectedRows[0].Cells[1].Value.ToString();
               comboCat.SelectedItem = ItemGV.SelectedRows[0].Cells[2].Value.ToString();
               txtitemprice.Text = ItemGV.SelectedRows[0].Cells[3].Value.ToString();
               //txtemail.Text = UserGV.SelectedRows[0].Cells[4].Value.ToString();
           }

ما حاولت:

عند النقر على الحدث، أقوم بكتابة الكود للحصول على قيم الشبكة إلى مربع النص

الحل 1

لا يمكننا أن نقول لك “إنه هناك!” لأننا سنحتاج إلى تشغيل التعليمات البرمجية الخاصة بك مع بياناتك لمعرفة مكان حدوثها بالضبط، والقيم التي تسبب المشكلة – وتحتاج إلى ذلك قبل أن تتمكن من البدء في البحث لماذا هذا خطأ!

كل ما يمكننا فعله هو شرح سبب تسببه في مشكلة. المصفوفات في C# هي سلسلة من القيم التي يتم الوصول إليها عبر فهرس: ويجب أن يكون هذا الفهرس بين صفر و”عدد القيم ناقص واحد”. لذا، إذا كان لديك مصفوفة تحتوي على خمسة أعداد صحيحة على سبيل المثال، فإن الفهارس الصالحة هي 0، 1، 2، 3، و4. جميع الفهارس الأخرى ستعطي خطأ لأن القيمة التي تحاول التعامل معها غير موجودة.
لذلك يمكنك أن تقول:

ج #
i = arr[0];
i = arr[1];
i = arr[2];
i = arr[3];
i = arr[4];

لكن لا:

ج #
i = arr[-1];
i = arr[5];
i = arr[666];

ويستخدم الكود الخاص بك عدة صفائف، أي منها يمكن أن يكون مصدر المشكلة.

لذا، سيكون الأمر متروكًا لك.
لحسن الحظ، لديك أداة متاحة لك والتي ستساعدك على معرفة ما يجري: مصحح الأخطاء. إذا كنت لا تعرف كيفية استخدامه، فمن المفترض أن يوفر لك Google السريع لـ “مصحح أخطاء Visual Studio” المعلومات التي تحتاجها.

ضع نقطة توقف على السطر الأول في الوظيفة، وقم بتشغيل التعليمات البرمجية الخاصة بك من خلال مصحح الأخطاء. ثم انظر إلى التعليمات البرمجية الخاصة بك وإلى بياناتك واكتشف ما يجب أن يحدث يدويًا. ثم قم بخطوة واحدة في كل سطر للتأكد من أن ما كنت تتوقع حدوثه هو بالضبط ما حدث. عندما لا يكون الأمر كذلك، فهذا هو الوقت الذي تواجه فيه مشكلة، ويمكنك التراجع (أو تشغيلها مرة أخرى والنظر عن كثب) لمعرفة السبب.

على ما يبدو، فإن مجموعة SelectedItems فارغة، أو لا توجد أعمدة كافية في الشبكة، ولكنك تحتاج إلى تشغيل التعليمات البرمجية الخاصة بك مع بياناتك لمعرفة ذلك.

عذرًا، ولكن لا يمكننا القيام بذلك نيابةً عنك – حان الوقت لتتعلم مهارة جديدة (ومفيدة جدًا جدًا): تصحيح الأخطاء!

コメント

タイトルとURLをコピーしました