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

كيف يتم اضافة PerformClick لاول زر في FlowLayoutPanel ؟

بدأه #A-H.c في 8 أكتوبر 2014 · 9 رد · 490 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته,

ازاي اققدر اخلي اول زر في FlowLayoutPanel يختص بـ PerformClick();

مع العلم ان الازارا يتم توليدها تلقائي.

#2

:exclaim: :exclaim: :exclaim:

#3

وعليكم السلام ورحمة الله،

 

أخي الكريم لا أدري ما تقصد بسؤالك حول Perform Click، فكل زر لديه هذه الميثود ويستطيع تنفيذها.

 

لكن اذا كنت تقصد أن تجعل أول زر هو الزر الإفتراضي للفورم، بحيث عند الضغط على Enter، يتم إستدعاء حدث الزر الأول.

 

فإليك المثال التالي، وهو إضافة بسيطة على مثال سابق، حول إنشاء إزرار على Flowlayout Panel

 

لتوضيح الأسطر الجديدة المضافة قمت بوضع كل سطر جديد بين علامتي تعليق كالتالي:

//

New Code

//

 

بالتوفيق،،،

GenerateButtons.rar

تم تعديل هذه المشاركة بواسطة Eng.Tareq Jehad في 9 أكتوبر 2014 في 14:56

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#4

الحمد لله تم الحل

في الفورم لود

Button btn1 = flpGroup.Controls.Find("btn1", true).FirstOrDefault() as Button;
            btn1.PerformClick();
            btn1.Select();
#5

شكرا / م :

Eng.Tareq Jehad

وجزاك الله خير عن وقتك اللي بتقضيه في مساعدة الناس.

#6

بس هل ممكن ابحث عن اول زر بـ index بدل الاسم ؟

#7

السلام عليكم ورحمة الله وبركاته

كيف حالك يا شريف
وصلتنى رسالتك  على الخاص وعندما دخلت لهذا الموضوع وجدت أن الله سهل لك بالحل

رغم أن لى بعض التحفظات على الكود المكتوب فى حدث تحميل النافذة
Form_Load
إلا أنه ماشى الحال

أما بخصوص السؤال عن استخدام الترقيم بدلاً من الاسم
فلا أنصح بها حيث أن الترقيم يتغر بتغير ترتيب الأدوات وبالتالى ربما يتسبب لك فى مشاكل مستقبلية

أما لو كنت مصمماً على استخدام الترقيم فيمكنك عمل مصفوفة من الأزرار على مستوى النافذة  أى ليس داخل أى حدث
بحيث لا تقم بتحفيزها مجرد تعريف فقط لا تحدد عدد عناصر لأنك ستقوم بذلك فى حدث تحميل النافذة

Button[] AllDynamicButtons;


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

AllDynamicButtons = new Button[0000];

بحيث تستبدل الأصفار بالرقم الفعلى

لم يتبق إلا إضافة العناصر لهذه المصفوفة ويتم ذلك فى الحلقة التكرارية التى تنشئ الأزرار
فيجب عليك داخل كل حلقة وبعد إنشاء الزر كتابة

AllDynamicButtons = xxxxx;

المقصود بالمتغير
i
هو الخاص بالحلقة التكرارية أما علامات
×××××
فيحب استبدالها باسم المتغير الذى يتم إنشاؤه فى الحلقة التكرارية

بعد ذلك يمكنك استخدام هذه المصفوفة من أى مكان بالنافذة مثل

AllDynamicButtons[0].PerformClick();


وكل عام وانت بخير
لكن فين لحمة العيد يا شريف ولا انت ما أكلت لحمة فى العيد
هههههههههههه

تم تعديل هذه المشاركة بواسطة ema2000_t في 10 أكتوبر 2014 في 11:44

9

أدعو الله أن يجعل أعمالنا خالصة لوجهه الكريم --- وأن ينفعنا بما علمنا

Dr Sayed Tohamy

Programming Instructor

مدرب برمجة

---------------

EmaSoft2000

-------------------

#8

أخي الكريم، 

يمكنك مباشرة عمل Indexing على Controls لأنها من نوع Control Collection

 

اي

Button button1 = this.Controls[0] as Button;

بالتوفيق،،،

1

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#9
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

#10
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

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