PDA

View Full Version : مشکل در استفاده از ComboBox



izadi
سه شنبه 06 آذر 1386, 09:56 صبح
من 3 تا comboBox در صفحه دارم که با selectedIndexChange هر کدام comboBox بعدی پر میشوند مشکل من اینه که بعد از اینکه داده ها در combobox اولی از database لود شد بلا فاصله سراغ selectedIndexchange ان می رود (بدون اینکه من index ان را تغییر دهم)و برای بار اول که صفحه لود میشود تمامی comboBox ها پر شده اند .من می خوام که فقط اولی پر شود و ایتم اول ان خالی باشد و اگر ایندکس را تغییر دادم بقیه پر شوند چی کار کنم؟ممنون

hassan razavi
سه شنبه 06 آذر 1386, 10:12 صبح
راه سادش اینه که در Formload تون آیتمهاب Combo های دوم و سوم را Clear کنید


comboBox1.Items.Clear();

izadi
سه شنبه 06 آذر 1386, 10:59 صبح
این کارو کردم پیغام خطای زیر را داد
Items collection cannot be modified when the DataSource property is set.

hassan razavi
سه شنبه 06 آذر 1386, 11:35 صبح
اگه Combo تون به دیتابیس وصل باشه نمی تونید آیتمها رو Clear کنید. من فکر کردم فقط Combo اولی وصل هست و دومی و سومی را با کد Additem میکنید.
اگه دومی و سومی به دیتابیس وصل هست ، در Onload فرمتون Dataset دومی و سومی رو Clear کنید.

izadi
سه شنبه 06 آذر 1386, 11:45 صبح
مشکل اینه که به هر حال بلا فاصله بعد از پر شدن comboBox ها بلافاصله به سراغ SelectedIndexChanged انها می رود بدون اینکه من ایندکس را تغییر دهم

Behrooz_CS
سه شنبه 06 آذر 1386, 14:26 عصر
یک آیتم به صورت دستی اضافه کنید مثلاً : انتخاب کنید
مقدار (value) آنرا مثلاً 0 قرار دهید و توی دستور SELECT کومبو باکس بعدی یک شرط بگذارید که رکوردهای مخالف 0 را برگرداند.
سپس خصوصیت AppendDataBoundItems را True کنید
سپس در رویدادOnDataBinding کد زیر را بنویسید :

while (ِDropDownList1.Items.Count > 1)
{
DropDownList1.Items.RemoveAt(1);
}

شرمنده من بعد از پستم متوجه شدم این بخش مربوط به App هست و با وب اشتباه گرفتم ! این جواب مشابه اش توی App هم هست کمی به پراپرتی ها دقت کنید به جواب می رسید.

sinpin
سه شنبه 06 آذر 1386, 15:56 عصر
مشکل اینه که به هر حال بلا فاصله بعد از پر شدن comboBox ها بلافاصله به سراغ SelectedIndexChanged انها می رود بدون اینکه من ایندکس را تغییر دهم

صرفنظر از نحوه کد نویسی شما و صحیح بودن یا نبودن آن؛ کلا میتونید event مورد نظر رو غیرفعال کنید، کارهای لازم رو روی ComboBox انجام داده و مجددا آن event رو فعال کنید.
ایونت رو به این شکل میتونید غیرفعال کنید :

this.ComboBox1.SelectedIndexChanged -= new System.EventHandler(this.ComboBox1_SelectedIndexCh anged);
و مجددا به این شکل فعال کنید :

this.ComboBox1.SelectedIndexChanged += new System.EventHandler(this.ComboBox1_SelectedIndexCh anged);

rasool nasr
پنج شنبه 08 آذر 1386, 09:14 صبح
من همیشه ایونت های این شکلی رو در فرم لود ، پس از اینکه عملیات پر کردن کمبو باکس انجام شد فعال می کنم.