سؤال

يواجه المستخدمون خطأً متقطعًا عند استخدام تطبيق Windows Forms المضمن في VB.NET 3.5.على ما يبدو، عند النقر فوق النموذج وإعادة طلاء النموذج، سيتم رسم علامة "X" حمراء فوق عنصر تحكم MenuStrip وسيتعطل التطبيق بسبب الخطأ التالي.

هل رأى اى شخص هذا من قبل؟هل يستطيع احد توجيهي الي الوجهة الصحيحة؟

    System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
       Parameter name: index

   at System.Collections.ArrayList.get_Item(Int32 index)
   at System.Windows.Forms.ToolStripItemCollection.get_Item(Int32 index)
   at System.Windows.Forms.ToolStrip.OnPaint(PaintEventArgs e)
   at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs)
   at System.Windows.Forms.Control.WmPaint(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.MenuStrip.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
هل كانت مفيدة؟

المحلول

هل تقوم بإضافة عناصر إلى هذا الشريط ديناميكيًا؟

نصائح أخرى

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

كما أن نموذج التعليمات البرمجية لكيفية استخدام القائمة الديناميكية سيساعدك أيضًا.

أثناء البحث في الكود، اكتشفت أنه يتم مسح القائمة وإعادة تحميلها كلما تم تحديث بيانات النموذج.يجب تحميل القائمة مرة واحدة فقط، عند تحميل النموذج في البداية.

أعتقد أنه قد يتم مسح القائمة أثناء عملية رسم النموذج.هل تعتقد أن هذا قد يكون صحيحا؟

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top