PDA

View Full Version : سوال: كار يكسان براي تمام button ها



cerezaei65
یک شنبه 13 آذر 1390, 08:35 صبح
سلام
يه برنامه دارم كه توش 80تا باتم داره ميخواستم ببينم چجوري ميشه واسه همشون event يكسان بنويسم
مثلا با راست كليك رنگشون(البته اوني كه كليك شده فقط) قرمز بشه؟:متفکر:

Arash_janusV3
پنج شنبه 17 آذر 1390, 08:46 صبح
درود
می توانید event ی که مد نظرتون هست تحت عنوان btn_click ایجاد کنید
و با شرط گذاری به این صورت عمل کنید

if(sender == btn1)
.
.
.
else if(sender == btn2)
.
.
.
else if(sender == btn3)
.
.
.




بعد در تمام btn ها event رو تعیین کنید
:لبخندساده:

m2_farzan
پنج شنبه 17 آذر 1390, 08:56 صبح
هر فرم، یک کلکسیون به نام Controls داره. برای مثال کد زیر لیست تمام کلید ها رو بر میگردونه:

this.Controls

حالا یه foreach بذار که تمام Control های داخل اون کلکسیون رو بخونه و چک کنه اگه اون کنترل یک باتن بود، event رو اضافه کنه.

Hossenbor
پنج شنبه 17 آذر 1390, 08:59 صبح
دوسته عزیز شما میتونی برای یکی تعریف کنی همه رو بجز اونکه براش تعریف کردی سلکت کنی بعد از تو قسمت ایونت ایونت رو رو ایونتی که برای باتن اولی قرار دادی قرار بدی

wolf_majid
پنج شنبه 17 آذر 1390, 09:36 صبح
سلام
يه برنامه دارم كه توش 80تا باتم داره ميخواستم ببينم چجوري ميشه واسه همشون event يكسان بنويسم
مثلا با راست كليك رنگشون(البته اوني كه كليك شده فقط) قرمز بشه؟:متفکر:

با این تعداد زیاد پیشنهاد می کنم خودتون یک کنترل باتن بسازید

cerezaei65
پنج شنبه 17 آذر 1390, 11:23 صبح
سلام ممنون جواب دادید
فقط نمیدونم چجوری باید یه باتن بسازم؟
راهنمایی میفرمایید

wolf_majid
پنج شنبه 17 آذر 1390, 12:14 عصر
خوب من دقیقا " نمی دونم میخواید چیکار کنید
اما یک userControl به پروژه اضافه کنید
سپس به جای UserControl از Button ارث بری کنید
و طبق کد زیر عمل کنید
public partial class myBtn :Button
{
public myBtn()
{
InitializeComponent();
}


protected override void OnMouseDown(MouseEventArgs mevent)
{
if (mevent.Button == MouseButtons.Right)
this.BackColor = Color.Red;
base.OnMouseDown(mevent);
}



}
در آخر یکبار پروژه را build کنید
و هر تعداد که می خواهید به فرمتون بیارید