تکس باکسی که فقط عدد 0 تا 20 را بگیرد. - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تکس باکسی که فقط عدد 0 تا 20 را بگیرد.

+2 امتیاز
سلام. چطور باید textbox درست کنم که عدد 1 تا 20 رو بگیره؟؟ و نه حروف و کارکتری توش ادد نشه. مثلا برای گرفتن نمره فقط اعداد اعشاری 0 تا 20
سوال شده اردیبهشت 8, 1393  بوسیله ی rahgozar (امتیاز 224)   18 26 35
دوباره تگ گذاری شد تیر 16, 1393 بوسیله ی BlueBlade
خب یک if بزار که اگر بیشتر از 20 بود ارور بده و از برنامه بیاد بیرون
کارای سخت سخت نگو!!!!

1 پاسخ

+3 امتیاز
 
بهترین پاسخ
private void textBox1_TextChanged(object sender, EventArgs e)
        {
            float n;
            if ((float.TryParse(textBox1.Text, out n)))
            {
                if (!(Convert.ToDouble(textBox1.Text) >=0 && Convert.ToDouble(textBox1.Text) <= 20))
                {
                    textBox1.Text = "0";
                    MessageBox.Show("!!!یعنی واقعاً نمیفهمی رنج نمرات بین 0 تا 20 هست");
                }
            }
            else
            {
                textBox1.Text = "0";
                MessageBox.Show("عمو جون عدد وارد کن");
            }
        }

 

C#

چون عدد 58 از 20 بزرگتر

 

 

 

C#

برای اعشار مشکل ندارد

 

 

 

C#

دو تا اعشار (.) دارد پس مشکل دارد و عدد مورد نظر ما نیست

 

 

 

 

C#

برای 0.25 مشکلی ندارد

 

 

 

C#

چون 20.5 از 20 بزرگتره مشکل داره

 

 

 

یادت باشه اگر جملات رو تغییر بدی برنامت ایمانی کار نمیکنه

پاسخ داده شده اردیبهشت 8, 1393 بوسیله ی Fire360Boy (امتیاز 2,524)   6 24 43
ویرایش شده بهمن 1, 1393 بوسیله ی haniye sarbazi
ممنون واقعا :D
فقط اینکه چطوری باید اعشاریش کنم؟
ببخشید. اما اینجا فقط عدد نمی گیره می تونه حروف هم توش وارد شه
من کد شما رو تست کردم. و با کد زیر کاملش کردم
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)&& e.KeyChar != '.')
            {
                e.Handled = true;
            }

            // only allow one decimal point
            if (e.KeyChar == '.'
                && (sender as TextBox).Text.IndexOf('.') > -1)
            {
                e.Handled = true;
            }


اما یک مشکا داره و اونم اینه که وقتی 20.5 بزاری دیگه ارور نمیده.
و اگه 0.5 هم بزاری تشخیص نمی ده.
این 2 مشگل رو داره.
عزیزم کدی که نوشتم اعشار میگیره اما حروف نمیگیره عکساشو مشاهده کن
در صورتی که فقط دوتا ممیز وارد بشه گیر میده

اون تیکرو هم اگه بزنی خووشحالمون میکنی
به عنوان جواب برتر
فکر میکنم شما جملات رو تغییر دادی بخاطر همین برنامه هه از ته دل کار نمیده
فقط تو عکسای بالا جای
 textBox1.Text = "0";
                    MessageBox.Show("!!!یعنی واقعاً نمیفهمی رنج نمرات بین 0 تا 20 هست");
رو عوض کردم که بتونم عکس بچیرم
اوکی؟
بزن تیکرو
...