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

مشكلة في تعبئة خلايا ال Table Lyout Panel عن طريق loop ؟؟

بدأه نقطة بداية في 8 ديسمبر 2010 · 7 رد · 454 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أود تعبئة خلايا التيبل لايآوت بانيل بالكومبوننت بانيل عن طريق for loop

وتخصيص أحداث ال dragDrop & dragEnter & mousDown لكل بانيل يتعبى

لكن في مشكلة يطلع لي خطأ وفي الكود تحته خط ,,وهذه تجربتي

// fill panels

for (int Row = 0; Row < 7; Row++)

{

for (int Column = 0; Column < 7; Column++)

{

Panel panel = new Panel();

panel.BackgroundImageLayout = ImageLayout.Stretch;

panel.AllowDrop = true;

//here the problem with the next 3 lines=====================

panel.DragDrop = Panel_DragDrop(sender, e);

panel.DragEnter = Panel_DragEnter(sender, e);

panel.MouseDown = Panel_MousDown(sender, e);

//===========================================

tableLayoutPanel1.Controls.Add(panel, Column, Row);

}

}

هل من إفادة لو تكرمتم؟

#3
System Down كتب:

ما هو الخطأ؟

كنت غيرت في الكود وفي الحقيقة طلع لي أكثر من خطأ مكررة مع السطور الثلاثة

1)

The event 'System.Windows.Form.Control.DragDrop' can only appear on the left hand sideof += or -=

2)

The best overloded method match for...............................=>has some invalid arguments

3)

Argumaent '2' : can not convert From 'System .EventArgs' to 'System.Windows.Form.DragEventArgs'

في المرفقات صورة للأخطاء

هذه الأخطاء لم أعرف طريقة حلها لكن عرفت أنه في مشكلة في ال arguments أو طريقة الكتابة خاطئة

هل من مساعدة؟

post-226709-060501500 1291843651_thumb.p

المرفقات
مشكلة في تعبئة التيبل بانيل.png

تم تعديل هذه المشاركة بواسطة نقطة بداية في 9 ديسمبر 2010 في 00:28

#4

طريقة إضافة الـevent خاطئة.

جرب هذه:

panel.DragDrop += Panel_DragDrop(sender, e);
panel.DragEnter += Panel_DragEnter(sender, e);
panel.MouseDown += Panel_MousDown(sender, e);

تم تعديل هذه المشاركة بواسطة System Down في 9 ديسمبر 2010 في 01:11

#5
System Down كتب:

طريقة إضافة الـevent خاطئة.

جرب هذه:

panel.DragDrop += Panel_DragDrop(sender, e);
panel.DragEnter += Panel_DragEnter(sender, e);
panel.MouseDown += Panel_MousDown(sender, e);

جربت وقلت الأخطاء...... حُل الخطأ الأول ولله الحمد

شكراً لك

لكن لم يزل يظهر الخطأ الثاني والثالث

حاولت أفهم المشكلة..... وجدت نوع الباراميتر اللي أرسله يختلف في ال events

مثلا

panel_Drag_Drop

مفروض نرسل معاه 2باراميتر( واحد من نوع أوبجيكت, والثاني من نوع DragEventArgs(

ونفس الفكرة مع ال Panel_DragEnter

لكن الPanel_MousDown

مفروض نرسل معاه 2باراميتر( واحد من نوع أوبجيكت, والثاني من نوع MouseEventArgs(

لكن كيف نعرّف هذه الباراميتر , أي قيمة نعطيها؟؟

كود التعبئة حطيته في ميثود ال Load

وكنت أخذت الباراميتر تبعتها وحطيتها في ميثودات الإفنت الثلاثة في الباراميتر قصدي

وتطلع الأخطاء

مع العلم أن الميثودات الثلاثة معرفة في نفس ملف الcs تبع الفورم

ولها كود

#7
System Down كتب:

يمكنك مراجعة مكتبة msdn لتعرف الـsignature الخاصة بأي event. خذ مثلاً DragDrop:

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.dragdrop.aspx

جزاكم الله خيراً :)

بحثت في مكتبة الMSDN ووجدت ماأريد ولله الحمد

في الرد الآتي سأعرض حل المشكلة للفائدة

#8

بداية نشكر عضو الشرف System Down على مساعدته في حل مشكلتي

هذه السطور الثلاثة بعد حل المشكلة

panel.DragDrop += new System.Windows.Forms.DragEventHandler(this.Panel_DragDrop);

panel.DragEnter += new System.Windows.Forms.DragEventHandler(this.Panel_DragEnter);

panel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Panel_MousDown

);

وهذه صورة للكود فيه السطور الثلاثة وفوق كل سطر الكود قبل حل المشكلة حطيته ككومنت

post-226709-073791000 1291878453_thumb.p

المرفقات
حل مشكلة تعبئة التيبل لاي آوت بانيل.png

تم تعديل هذه المشاركة بواسطة نقطة بداية في 9 ديسمبر 2010 في 10:07

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

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

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

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

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