PDA

View Full Version : کمک فوری در مورد Event ها



LEADER.OF.HELL
یک شنبه 08 بهمن 1391, 22:21 عصر
سلام به همگی
به کمک فوری توی پروژه نیازمندم!
من حدود 200تا combobox دارم
میخوام selected index change رو روی همه اعمال کنم تا مجبور نباشم واسه event هر کدوم دوباره برنامه نویسی کنم!
راهی هست که بشه event هر combobox یا button رو برای یکی دیگه از comboboxها یا buttonها تکرار کرد؟
بدون کد نویسی مجدد؟
مرسی

aliasghar2
یک شنبه 08 بهمن 1391, 22:41 عصر
دوست عزیز خیلی سادس باید متدی که نوشتی به همه کنترل هات نسبت بدی حالا یا با design یا با کدنویسی
موفق باشی

LEADER.OF.HELL
یک شنبه 08 بهمن 1391, 22:48 عصر
دوست عزیز خیلی سادس باید متدی که نوشتی به همه کنترل هات نسبت بدی حالا یا با design یا با کدنویسی
موفق باشی

من 200 تا combobox دارم
اگه بخوام کدرو توی تک تک کپی کنم باید 200 بار کپی پیست انجام بدم!!
غیز از اینکه باید شماره هر combobox و ... رو توی هر خط کد عوض کنم
توی button ها هم همینطور
100تا button ثبت در دیتابیس هست!! اگه بخوام توی event کلیک تک تک کد بنویسم که دیگه کلی طول میکشه و خط کدها میره بالا!!
راه حلی کسی نمیدونه تروقران

aliasghar2
یک شنبه 08 بهمن 1391, 22:53 عصر
دوست عزیر متدت رو بنویس به توی فرم لودد این کد رو بزار

foreach (Control C in this.Controls)
{
if (C is ComboBox)
{
( (ComboBox)C).SelectedIndexChanged +=new EventHandler(methodname)
}
}
البته بجای methodName نام متد خود رو بنویس

wolf_majid
یک شنبه 08 بهمن 1391, 23:01 عصر
کافیه همه رو انتخاب کنی بعد روی اونت یکیشون دابل کلیک کنی
برای اسمشون هم بنویس
(sender as combobox)
باتن ها هم همینطور , همه را انتخاب کن
روی رخداد یکیشون دابل کلیک کن
و برای اسم هم بنویس
(sender as Button)

LEADER.OF.HELL
یک شنبه 08 بهمن 1391, 23:01 عصر
دوست عزیر متدت رو بنویس به توی فرم لودد این کد رو بزار

foreach (Control C in this.Controls)
{
if (C is ComboBox)
{
( (ComboBox)C).SelectedIndexChanged +=new EventHandler(methodname)
}
}
البته بجای methodName نام متد خود رو بنویس

من 3مدل combobox توی صفحه دارم!
مقدار هر کدوم فرق میکنه!!
واسه button ها هم همینطور!
3مدل button دارم که یکی کار ثبت کی ویرایش و یکی حذف انجام میده!
بعد اینا توی فرم(مخصوص برنامه ربزی برنامه کلاسی) تکرار میشن!
یعنی در کل 100تا button ثبت،100تا حذف و 100 تا ویرایش دارم!
combobox ها هم همینطورین!
راهی هست واسه button و combox؟

LEADER.OF.HELL
یک شنبه 08 بهمن 1391, 23:18 عصر
کافیه همه رو انتخاب کنی بعد روی اونت یکیشون دابل کلیک کنی
برای اسمشون هم بنویس
(sender as combobox)
باتن ها هم همینطور , همه را انتخاب کن
روی رخداد یکیشون دابل کلیک کن
و برای اسم هم بنویس
(sender as Button)

عکسی که ضمیمه کردم بیبین!!

aliasghar2
یک شنبه 08 بهمن 1391, 23:32 عصر
پس در واقع سه تا متد داری و سه نوع کمبو باکس
اینطور که من فرمتو دیدم هر سه کومبو در داخل یک پنله

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

روش دوم اینه که هر نوع کومبو با نام خاصی شروع بشه مثلا کد کلاس نام کومبوش اینجوری باش cmbIdclass1 به با شرط بسته به نام کومبو متد مربوطه رو بهش نصبت بدی

روش اول
foreach (Control Cpanel in this.Controls)
{
foreach (Control C in Cpanel.Controls)
{
int i = 0;
if (C is ComboBox)
{
if (1==0)
((ComboBox)C).SelectedIndexChanged += new EventHandler(methodname1);
else if (i==1)
((ComboBox)C).SelectedIndexChanged += new EventHandler(methodname2);
else if (i==2)
((ComboBox)C).SelectedIndexChanged += new EventHandler(methodname3);
i++;
}
}
}

روش دوم
foreach (Control C in Cpanel.Controls)
{
if (C is ComboBox)
{
if (C.Name.StartsWith("CmbidClass"))
((ComboBox)C).SelectedIndexChanged += new EventHandler(methodname1);
else if (C.Name.StartsWith("Cmbostad"))
((ComboBox)C).SelectedIndexChanged += new EventHandler(methodname2);
else if (C.Name.StartsWith("Cmbdars"))
((ComboBox)C).SelectedIndexChanged += new EventHandler(methodname3);
}
}

LEADER.OF.HELL
یک شنبه 08 بهمن 1391, 23:34 عصر
یعنی هیچکی نیست که یه راه کار بده بهم!!! :گریه:

LEADER.OF.HELL
یک شنبه 08 بهمن 1391, 23:41 عصر
پس در واقع سه تا متد داری و سه نوع کمبو باکس
اینطور که من فرمتو دیدم هر سه کومبو در داخل یک پنله

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

روش دوم اینه که هر نوع کومبو با نام خاصی شروع بشه مثلا کد کلاس نام کومبوش اینجوری باش cmbIdclass1 به با شرط بسته به نام کومبو متد مربوطه رو بهش نصبت بدی

روش اول
foreach (Control Cpanel in this.Controls)
{
foreach (Control C in Cpanel.Controls)
{
int i = 0;
if (C is ComboBox)
{
if (1==0)
((ComboBox)C).SelectedIndexChanged += new EventHandler(methodname1);
else if (i==1)
((ComboBox)C).SelectedIndexChanged += new EventHandler(methodname2);
else if (i==2)
((ComboBox)C).SelectedIndexChanged += new EventHandler(methodname3);
i++;
}
}
}

روش دوم
foreach (Control C in Cpanel.Controls)
{
if (C is ComboBox)
{
if (C.Name.StartsWith("CmbidClass"))
((ComboBox)C).SelectedIndexChanged += new EventHandler(methodname1);
else if (C.Name.StartsWith("Cmbostad"))
((ComboBox)C).SelectedIndexChanged += new EventHandler(methodname2);
else if (C.Name.StartsWith("Cmbdars"))
((ComboBox)C).SelectedIndexChanged += new EventHandler(methodname3);
}
}

مرسی ولی واسه button ها چیکار کنم؟
میبنی که توی هر پنل 3تا Button هست که یکی ثبت،یکی ویرایش و یکی حذف انجام میدن!

LEADER.OF.HELL
دوشنبه 09 بهمن 1391, 08:47 صبح
هنوز کسی نیست که جواب ما رو بده؟