السلام عليكم ورحمة الله وبركاته,
ازاي اققدر اخلي اول زر في FlowLayoutPanel يختص بـ PerformClick();
مع العلم ان الازارا يتم توليدها تلقائي.
السلام عليكم ورحمة الله وبركاته,
ازاي اققدر اخلي اول زر في FlowLayoutPanel يختص بـ PerformClick();
مع العلم ان الازارا يتم توليدها تلقائي.
:exclaim: :exclaim: :exclaim:
وعليكم السلام ورحمة الله،
أخي الكريم لا أدري ما تقصد بسؤالك حول Perform Click، فكل زر لديه هذه الميثود ويستطيع تنفيذها.
لكن اذا كنت تقصد أن تجعل أول زر هو الزر الإفتراضي للفورم، بحيث عند الضغط على Enter، يتم إستدعاء حدث الزر الأول.
فإليك المثال التالي، وهو إضافة بسيطة على مثال سابق، حول إنشاء إزرار على Flowlayout Panel
لتوضيح الأسطر الجديدة المضافة قمت بوضع كل سطر جديد بين علامتي تعليق كالتالي:
//
New Code
//
بالتوفيق،،،
تم تعديل هذه المشاركة بواسطة Eng.Tareq Jehad في 9 أكتوبر 2014 في 14:56
• • •
[ ربيّ احفظ سوريا الحبيبة]

الحمد لله تم الحل
في الفورم لود
Button btn1 = flpGroup.Controls.Find("btn1", true).FirstOrDefault() as Button;
btn1.PerformClick();
btn1.Select();بس هل ممكن ابحث عن اول زر بـ index بدل الاسم ؟
السلام عليكم ورحمة الله وبركاته
كيف حالك يا شريف
وصلتنى رسالتك على الخاص وعندما دخلت لهذا الموضوع وجدت أن الله سهل لك بالحل
رغم أن لى بعض التحفظات على الكود المكتوب فى حدث تحميل النافذة
Form_Load
إلا أنه ماشى الحال
أما بخصوص السؤال عن استخدام الترقيم بدلاً من الاسم
فلا أنصح بها حيث أن الترقيم يتغر بتغير ترتيب الأدوات وبالتالى ربما يتسبب لك فى مشاكل مستقبلية
أما لو كنت مصمماً على استخدام الترقيم فيمكنك عمل مصفوفة من الأزرار على مستوى النافذة أى ليس داخل أى حدث
بحيث لا تقم بتحفيزها مجرد تعريف فقط لا تحدد عدد عناصر لأنك ستقوم بذلك فى حدث تحميل النافذة
Button[] AllDynamicButtons;
أما فى حدث التحميل يجب عليك تحفيز هذه المصفوفة بعدد الأزرار التى لديك والذى تعرفه
من قواعد البيانات كما ذكرت لى فى فى مكالمتك التليفونية الأخيرة
فتكتب
AllDynamicButtons = new Button[0000];
بحيث تستبدل الأصفار بالرقم الفعلى
لم يتبق إلا إضافة العناصر لهذه المصفوفة ويتم ذلك فى الحلقة التكرارية التى تنشئ الأزرار
فيجب عليك داخل كل حلقة وبعد إنشاء الزر كتابة
AllDynamicButtons = xxxxx;
المقصود بالمتغير
i
هو الخاص بالحلقة التكرارية أما علامات
×××××
فيحب استبدالها باسم المتغير الذى يتم إنشاؤه فى الحلقة التكرارية
بعد ذلك يمكنك استخدام هذه المصفوفة من أى مكان بالنافذة مثل
AllDynamicButtons[0].PerformClick();
وكل عام وانت بخير
لكن فين لحمة العيد يا شريف ولا انت ما أكلت لحمة فى العيد
هههههههههههه
تم تعديل هذه المشاركة بواسطة ema2000_t في 10 أكتوبر 2014 في 11:44
أدعو الله أن يجعل أعمالنا خالصة لوجهه الكريم --- وأن ينفعنا بما علمنا
Dr Sayed Tohamy
Programming Instructor
مدرب برمجة
---------------
EmaSoft2000
-------------------
أخي الكريم،
يمكنك مباشرة عمل Indexing على Controls لأنها من نوع Control Collection
اي
Button button1 = this.Controls[0] as Button;
بالتوفيق،،،
• • •
[ ربيّ احفظ سوريا الحبيبة]

ema2000_t كتب:السلام عليكم ورحمة الله وبركاته
كيف حالك يا شريف
وصلتنى رسالتك على الخاص وعندما دخلت لهذا الموضوع وجدت أن الله سهل لك بالحل
رغم أن لى بعض التحفظات على الكود المكتوب فى حدث تحميل النافذة
Form_Load
إلا أنه ماشى الحال
أما بخصوص السؤال عن استخدام الترقيم بدلاً من الاسم
فلا أنصح بها حيث أن الترقيم يتغر بتغير ترتيب الأدوات وبالتالى ربما يتسبب لك فى مشاكل مستقبلية
أما لو كنت مصمماً على استخدام الترقيم فيمكنك عمل مصفوفة من الأزرار على مستوى النافذة أى ليس داخل أى حدث
بحيث لا تقم بتحفيزها مجرد تعريف فقط لا تحدد عدد عناصر لأنك ستقوم بذلك فى حدث تحميل النافذة
Button[] AllDynamicButtons;أما فى حدث التحميل يجب عليك تحفيز هذه المصفوفة بعدد الأزرار التى لديك والذى تعرفه
من قواعد البيانات كما ذكرت لى فى فى مكالمتك التليفونية الأخيرة
فتكتب
AllDynamicButtons = new Button[0000];بحيث تستبدل الأصفار بالرقم الفعلى
لم يتبق إلا إضافة العناصر لهذه المصفوفة ويتم ذلك فى الحلقة التكرارية التى تنشئ الأزرار
فيجب عليك داخل كل حلقة وبعد إنشاء الزر كتابة
AllDynamicButtons = xxxxx;المقصود بالمتغير
i
هو الخاص بالحلقة التكرارية أما علامات
×××××
فيحب استبدالها باسم المتغير الذى يتم إنشاؤه فى الحلقة التكرارية
بعد ذلك يمكنك استخدام هذه المصفوفة من أى مكان بالنافذة مثل
AllDynamicButtons[0].PerformClick();وكل عام وانت بخير
لكن فين لحمة العيد يا شريف ولا انت ما أكلت لحمة فى العيد
هههههههههههه
شكراً د / سيد تُهامي على مشاركة حضرتك و اساليبك المميزة ,
انا استخدمت الكود ده لاضافة الازرار الى FlowLayoutPanel الكود يعمل 100*100
SqlDataAdapter da = new SqlDataAdapter("select * from Groups where by GroupName", cn); DataTable dt = new DataTable(); da.Fill(dt); for (int i = 0; i < dt.Rows.Count; i++) { Button btn = new Button(); btn.Name = "btn" + dt.Rows[1]; btn.Tag = dt.Rows[1]; btn.Text = dt.Rows[2].ToString(); btn.Font = new Font("Arial", 14f, FontStyle.Bold); // btn.UseCompatibleTextRendering = true; btn.BackColor = Color.Green; btn.Height = 57; btn.Width = 116; flpGroup.Controls.Add(btn); }وشكرا على التنوع في الحلول :thumb_up: :thumb_up: :thumb_up: :ty: :ty: :ty:
وكل سنة وحضرتك طيب
واللحمة جاية ان شاء الله :D
تم تعديل هذه المشاركة بواسطة #A-H.c في 10 أكتوبر 2014 في 15:54
Eng.Tareq Jehad كتب:أخي الكريم،
يمكنك مباشرة عمل Indexing على Controls لأنها من نوع Control Collection
اي
Button button1 = this.Controls[0] as Button;:thumb_up:بالتوفيق،،،
الكود يعمل 100*100
شكرا لمشاركة حضرتك م / Eng.Tareq Jehad :thumb_up: :thumb_up: :thumb_up: :ty: :ty: :ty:
تم تعديل هذه المشاركة بواسطة #A-H.c في 10 أكتوبر 2014 في 15:54