PDA

View Full Version : بدست اوردن مقدار فعلی combobox



hojjjat
سه شنبه 25 فروردین 1394, 15:32 عصر
من میخوام مقدار فعلی combo box در متغییری ‌ذخیره بشه
کد زیر چرا ارور میده؟ int year =int.Parse( comboBox1.SelectedText.ToString());

محمد رضا فاتحی
سه شنبه 25 فروردین 1394, 15:41 عصر
چه خطایی می ده؟

salibsatan
سه شنبه 25 فروردین 1394, 15:44 عصر
احتمالا نمی تونه اون متن رو به عدد تبدیل کنه.اگه توی فرم لود نوشتین کد رو، مطمئن بشین قبلش به کمبو باکس مقدار دادین و در واقع الان selectedtext یک عدد هست

hojjjat
سه شنبه 25 فروردین 1394, 15:50 عصر
ارورش اینه
قبلش هم کوبو ی چیزی رو انتخاب کرده
An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll


Additional information: Input string was not in a correct format.
این ارور را در حین اجرای برنامه وقتی ب خط میرسه میگه!!!

LastAirbender
سه شنبه 25 فروردین 1394, 15:55 عصر
من میخوام مقدار فعلی combo box در متغییری ‌ذخیره بشه
کد زیر چرا ارور میده؟ int year =int.Parse( comboBox1.SelectedText.ToString());

با سلام ، دوست من شما سوال رو کامل نمی پرسین و کد رو هم کامل نمیزارین به همین خاطر همه پاسخ دهنده های باید یک سناریوی متفاوت رو براتون پیش بینی کنن ، سناریویی که من به ذهنم میرسه این هست که شما دارین این کد رو به EventHandler یک Button یا Object ای دیگه اضافه می کنین ، خب طبیعی هست که وقتی مثلا دکمه کلیک میشه SelectedText دیگه SelectedText نیست ، و مقدار که شما به دست میارین یک emty string خواهد بود ، می تونید از خاصیت SelectedItem برای این کار استفاده بکنید . موفق باشید

محمد رضا فاتحی
سه شنبه 25 فروردین 1394, 15:56 عصر
Input string was not in a correct format
این خطا برای ورودی نادرسته وقتی می خواد رشته رو تبدیل به عدد کنه
مطمئن بشید که پارامتری که می فرستید به متد parse رشته ای از اعداد باشه
برای امتحان این کد کد رو قبل از int year =int.Parse( comboBox1.SelectedText.ToString());

بنویس

string str=comboBox1.SelectedText.ToString();

با یه breakpoint چک کن ببین str چیه!

LastAirbender
سه شنبه 25 فروردین 1394, 16:03 عصر
ارورش اینه
قبلش هم کوبو ی چیزی رو انتخاب کرده
An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll


Additional information: Input string was not in a correct format.
این ارور را در حین اجرای برنامه وقتی ب خط میرسه میگه!!!

این پیام هم میگه که این رشته ای مه میخواید به int ،ـ parse بکنید ، فرمتش صحیح نیست (در این مورد یعنی عددی نیست) پس کافی هست در این گونه موارد مقداری رو که به عنوان پارامتر به متدتون ارسال می کنید رو چک بکنید و MessageBox.Show بکنید ببینید چی هست ، یا اینکه در موقع دیباگ اگر روی نوار زرد رنگ برید و روی SelectedText (که البته خودش رشته هست و نیازی به ()ToString. نداره ) وایستید تا مقداری رو که این خاصیت بر میگردونه ببنید. اگر "" رو دیدین یعنی مشکل همونی هست که من بالا اشاره کردم ، از امکانات Visual Studio استفاده بکنید.. موفق باشید،

hojjjat
سه شنبه 25 فروردین 1394, 16:05 عصر
int year =int.Parse( comboBox1.Text.ToString());
مشکل به سادگی با کد بالا حل شد!!!!

LastAirbender
سه شنبه 25 فروردین 1394, 16:11 عصر
int year =int.Parse( comboBox1.Text.ToString());
مشکل به سادگی با کد بالا حل شد!!!!

بله ، بخاطر اینکه Text همون Text هست و مهم نیست SelectedText باشه یا نه ، و در نتیجه فوکوس روی آبجکت های دیگه هم تاثیری نداره..