PDA

View Full Version : سوال: چگونگی جلوگیری از اجرای Combobox_SelectedIndexChanaged در form_load



L_eskandary
جمعه 28 مرداد 1390, 12:11 عصر
سلام دوستان
من وقتی برا combobox ، رویداد مربوط به Combobox_SelectedIndexChanaged رو فعال می کنم موقع لود صفحه هم اعمال میشه برا جلوگیری از این اتفاق باید چه کاری انجام بدم؟
مسئله هم اینه که من یه گرید تو صفحه دارم که موقع لود صفحه می خوام همه اطلاعات لود شه و بعد با توجه به مقدار combobox رکوردهای مورد نظر رو نشون بده.
پیشاپیش از توجه دوستان ممنون.

roshanak_g
جمعه 28 مرداد 1390, 12:15 عصر
بهتره کد مربوط به Combobox_SelectedIndexChanaged را داخل یه try و catch بنویسین. اینجوری مشکل حل میشه.

cccccccccc
جمعه 28 مرداد 1390, 12:34 عصر
شما میخواید رویداد Combobox_SelectedIndexChanaged وقتی که خودتون خواستین اجرا بشه؟
یعنی توی برنامتون یه سری عملیات انجام میدین که ناخواسته این رویداد هم اجرا میشه؟

Farshid007
جمعه 28 مرداد 1390, 12:51 عصر
خوب ناخواسته Combobox_SelectedIndexChanaged اجرا بشه
مگه چی میشه؟؟

L_eskandary
جمعه 28 مرداد 1390, 13:04 عصر
شما میخواید رویداد Combobox_SelectedIndexChanaged وقتی که خودتون خواستین اجرا بشه؟
یعنی توی برنامتون یه سری عملیات انجام میدین که ناخواسته این رویداد هم اجرا میشه؟
بله . من می خوام هر وقت خودم combobox رو کلیک کردم رویداد مربوطه اجرا بشه.

cccccccccc
جمعه 28 مرداد 1390, 15:09 عصر
سلام
بذارید یک مثال بگم
من توی یک فرم تعدادی textbox داشتم که توی رویداد textchange همه ی اونا عمل جستجو توی بانک انجام می شد، خب مشکلی نبود، اما بعضی جاها احتیاج بود که متن همه ی textbox ها خالی بشن، که با این کار رویداد textchange اونا هم فراخوانی میشد، اما احتیاجی به جستجو توی بانک نبود اگرم بود فقط یکبار نه به ازای تمام textbox ها، به جز این مورد موارد دیگه ای هم بودن
خب این متغیرو تعریف کردم
public enum acces2db { Yes, No }
/// <summary>
/// متغیری سراسری در کل برنامه برای دسترسی به بانک اطلاعاتی
/// </summary>
static public acces2db AlowAcces2db = acces2db.Yes;
و قبل از خالی کردن متن اونو No میکردم، بعد از پایان کار اونو به Yes تغییر میدادم
حالا برای مشکل این دوستمونم شاید بشه همچین کاری کرد

علیرضا حسن زاده
جمعه 28 مرداد 1390, 17:36 عصر
خیلی راحت می تونی رویداد تغییر ایندکس رو از لیست رویداد Combobox حذف کنی بعد تموم شدن FormLoad یعنی آخرین دستور همین تابع دوباره تابع SelectedIndexChanaged رو به event مربوطش وصل کنی

amir3321
سه شنبه 01 شهریور 1390, 13:39 عصر
با عرض معذرت میشه این کاری که گفتی با کد توضیح بدی یعنی چطور رویداد تغییر ایندکس رو از لیست حذف میکنی و دوباره به event وصلش میکین

علیرضا حسن زاده
سه شنبه 01 شهریور 1390, 14:32 عصر
ابتدای جایی که می خوای داده هارو لود کنی می نویسی

CbxType.SelectedIndexChanged -= CbxTypeSelectedIndexChanged;

بعد تموم شدن لود داده ها می نویسی

CbxType.SelectedIndexChanged += CbxTypeSelectedIndexChanged;

CbxTypeSelectedIndexChanged نام تابعی هست که برای رویداد مورد نظرت انتخاب کردی
<<فقط اگه یکم بیشتر در مورد دات نت مطالعه کنید بهتر می تونید نتیجه بگیرید البته خیلی ببخشید>>