كيفية الحصول على حدث LinkClicked باستخدام ArrayList of LinkLabels في .NET

StackOverflow https://stackoverflow.com/questions/141212

سؤال

أنا أعمل على نموذج يعرض روابط لفتح أنواع مختلفة من التقارير.يحتوي هذا النظام على أنواع مختلفة من المستخدمين، لذا يجب أن يكون المستخدمون قادرين فقط على رؤية الروابط الخاصة بأنواع التقارير التي يمكنهم الوصول إليها.

حاليًا، الطريقة التي أقوم بها بهذا الإعداد هي أن لدي ArrayList of LinkLabels، ولكن المشكلة التي أواجهها هي كيفية الحصول على حدث LinkClicked لكل LinkLabel في ArrayList بحيث يعرض نموذجًا خاصًا بكل تقرير .

هل كانت مفيدة؟

المحلول

يمكنك تطبيق نفس معالج الأحداث على كل LinkLabel في قائمتك والحصول على LinkLabel المحدد من وسيطة المرسل.

نصائح أخرى

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

نوصي بالتأكيد بمعالج حدث واحد لجميع مثيلات LinkLabel الديناميكية.

عادةً ما أستخدم Hashtable حيث يكون المفتاح هو مثيل LinkLabel والقيمة هي الشيء الذي سيتم استخدامه في حدث النقر (مثل مثيل التقرير، إذا كان ذلك مناسبًا).

ثم في حدث النقر الذي تستخدمه (على سبيل المثال)

Report r = m_TheTable[sender] as Report;
if( r != null ) r.DoSomething();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top