PDA

View Full Version : سوال: مشکل در itemهای combobox



nasimsltn7@gmail.com
یک شنبه 25 تیر 1391, 16:34 عصر
سلام.
من داده های combobox رو از طریق دیتا بیس add کردم.
یعنی از طریق خاصیت data source در کمبو باکس یک دیتا ست ساختم و display member رو یکی از ستون های دیتا ست انتخاب کردم.
وقتی برنامه لود میشه همه ی داده های دیتا بیس روی کمبو باکس مییان.
مشکلی که من دارم اینه که چه جوری میشه یه error provider واسش گذاشت که اگه کاربر هیچ یک از داده های کمبو باکس رو انتخاب نکنه ،error بگیره ؟؟؟:افسرده:
در c#
مرسی

veniz2008
یک شنبه 25 تیر 1391, 16:55 عصر
میتونی برای چک کردن کمبوباکس از خاصیت selectedIndex استفاده کنی،یا میتونی متن کمبوباکس رو چک کنی اگه خالی بود کاری انجام نده و اگر مقدار داشت(یعنی کاربر چیزی رو انتخاب کرده بود) کار مورد نظر شما رو انجام بده.
موفق باشید.

sanay_esh
یک شنبه 25 تیر 1391, 17:11 عصر
طبق فرمایش استاد عزیز بالایی .. یا از ابتدا ComboBox.SelectedIndex=0 قرار بده که مشکل را در نطفه خفه بکنه
یا در event دکمه جستجو یا هر postback صفحه ComboBox.SelectedValue را چک کن ....
اصولا برای اینکار از روش اولی استفاده میشه !

nasimsltn7@gmail.com
یک شنبه 25 تیر 1391, 17:38 عصر
ممنون از لطف هر دو ،با دستور ComboBox.SelectedIndex==0 مشکلم بر طرف شد.

merlin425
یک شنبه 25 تیر 1391, 18:21 عصر
ممنون از لطف هر دو ،با دستور ComboBox.SelectedIndex==0 مشکلم بر طرف شد.

آخه این چه کاریه شاید اصلآ کار بر فرا موش کرده انتخاب کنه یا هر چیز دیگه خوب خاصیت Text مربوط به combo رو چک اگه برابر "" بود بهش error بده این که طبیعی تره به زور یه Item انتخاب شده رو میندازی گردن کاربر

nasimsltn7@gmail.com
دوشنبه 02 مرداد 1391, 14:51 عصر
آخه این چه کاریه شاید اصلآ کار بر فرا موش کرده انتخاب کنه یا هر چیز دیگه خوب خاصیت Text مربوط به combo رو چک اگه برابر "" بود بهش error بده این که طبیعی تره به زور یه Item انتخاب شده رو میندازی گردن کاربر
این کار امکان پذیر نیست چون به صورت پیش فرض کمبو باکس با داده های دیتا بیس پر شده،و وقتی فرم لود میشه text اون پر هستش

nasimsltn7@gmail.com
دوشنبه 02 مرداد 1391, 14:55 عصر
میتونی برای چک کردن کمبوباکس از خاصیت selectedIndex استفاده کنی،یا میتونی متن کمبوباکس رو چک کنی اگه خالی بود کاری انجام نده و اگر مقدار داشت(یعنی کاربر چیزی رو انتخاب کرده بود) کار مورد نظر شما رو انجام بده.
موفق باشید.

یه مشکل دیگه ای هم هست که 0=selectedIndex قرار بدم ایتم اول رو صفر در نظر گرفته و اگه کاربر همون ایتم رو انتخاب کنه بازم ارور میگیره ،از طریق text هم امکان پذیر نیست :گیج:
دیگه واقعا نمیدونم چی کار کنم:افسرده:

Mahmoud.Afrad
دوشنبه 02 مرداد 1391, 18:07 عصر
قبل از اینکه دیتاتیبل رو پر کنید یک سطر خالی ایجاد کنید بعد دیتاتیبل رو از دیتابیس پر کنید. بعد از اینکار سطر اول رو با عبارتی مثل "انتخاب کنید" پر کنید و به کمبوباکس بایند کنید. در این صورت اگر آیتم اول(اندیس0) انتخاب بشه یعنی کاربر آیتمی رو نمیخواسته انتخاب کنه.

nasimsltn7@gmail.com
سه شنبه 03 مرداد 1391, 16:09 عصر
قبل از اینکه دیتاتیبل رو پر کنید یک سطر خالی ایجاد کنید بعد دیتاتیبل رو از دیتابیس پر کنید. بعد از اینکار سطر اول رو با عبارتی مثل "انتخاب کنید" پر کنید و به کمبوباکس بایند کنید. در این صورت اگر آیتم اول(اندیس0) انتخاب بشه یعنی کاربر آیتمی رو نمیخواسته انتخاب کنه.
اگه میشه بیشتر توضیح بدید چون من برای کمبو باکسم کد نویسی نکردم.
تنها از طریق دیتا سورس اون یه دیتا ست اضافه کردم.

Mahmoud.Afrad
سه شنبه 03 مرداد 1391, 18:53 عصر
اگر به صورت ویژوال این کار رو کردید توی فرم لود خطی مثل زیر اضافه میشه
// TODO: This line of code loads data into the 'database1DataSet.tbl' table. You can move, or remove it, as needed.
this.tblTableAdapter.Fill(this.database1DataSet.tb l);
کافیه دو خط قبلش اضافه کنید
this.database1DataSet.tbl.AddtblRow("انتخاب کنید", "");
this.tblTableAdapter.ClearBeforeFill = false;البته نام دیتاست و دیتاآداپتر را خودتون تنظیم کنید. البته توی این حالت selectedvalue آیتم "انتخاب کنید" برابر -1 خواهد شد نه صفر.

k1csharpdeveloper
چهارشنبه 04 مرداد 1391, 04:22 صبح
سلام دوست عزیز همین مشکل رو من داشتم به عنوان مثال من کمبو باکس جنسیت رو داشتم که این باید شامل یه مذکر و مونث میبود ولی هربار که سطر اضافه میشد 10 تا مونث به فرض میومد 10 تا مذکر برای اینکار اومدم برای هر کمبو باکسم یه کدینگ یا جداول پایه تعریف کردم و کمبوباکس ها رو از اونجا خوندم یعنی جنسیت هم توی فیلد به فرض مشخصات بیمارانم بود هم توی جدول کدینگ جنسیتم اینجوری مشکلم حل شد میخوام بچه ها نظرشونو بگن آیا میشه کار دیگه ای هم کرد

mhdhp86
دوشنبه 16 مرداد 1391, 16:49 عصر
من هم دقیقا یک کومبوباکس جنسیت دارم و در combobox task در قسمت editItems زن و مرد رو نوشتم تا دیگه به خاطر دوتا گزینه به چدول بایند نشه.حالا من هم میخوام اگر جنسیت انتخاب نشد خطا بده. این کاری که چندتا پست بالاتر دوستمون گفتند رو انجام دادم،یعنی:
sexcombo .SelectedIndex == 0
اما زیرش خط سبز کشیده و وقتی موس رو روش نگه میدارم مینویسه که سمت چپ باید استرینگ باشه! موقع اجرا هم وقتی گزینه ای رو انتخاب نکنم اعلام خطا نمیده!
وقتی بهش .ToString() رو هم اضافه میکنم زیرش خط قرمز میاد و ارور میده

Mahmoud.Afrad
دوشنبه 16 مرداد 1391, 18:07 عصر
در جواب mhdhp86 (http://barnamenevis.org/member.php?241805-mhdhp86):
اولا خطا شاید به خاطر اون space قبل از نقطه باشه.
چون دستی آیتم ها را اضافه کردید ، آیتم اول را خالی بزارید یا چیزی شبیه "اننخاب کنید" (یعنی سه تا آیتم). با این کار اندیس این آیتم 0 هست . حالا به این صورت چک کنید
if (comboBox2.SelectedIndex == -1 || comboBox2.SelectedIndex == 0)
MessageBox.Show("warning");