دوستای خوبم سلام.من یه برنامه نوشتم که توش یه ادیت هست که فقط باید عدد دریافت کنه. چه طوری می تونم تشخیص بدم که رشته وارد شده یک رشته عددی است و در صورت وارد شدن کاراکتر غیر مجاز پیام خطای مناسب صادر کنم؟ ممنون می شم اگه راهنمایی کنین..
دوستای خوبم سلام.من یه برنامه نوشتم که توش یه ادیت هست که فقط باید عدد دریافت کنه. چه طوری می تونم تشخیص بدم که رشته وارد شده یک رشته عددی است و در صورت وارد شدن کاراکتر غیر مجاز پیام خطای مناسب صادر کنم؟ ممنون می شم اگه راهنمایی کنین..
سلام
برای این کار راه های خیلی زیادی هستش فعلا یکی رو می زارم
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\b')
{
e.Handled = false;
return;
}
if (e.KeyChar < '0' || e.KeyChar > '9')
e.Handled = true;
}
موفق باشید.
سلام
بهتر بود قبل از پرسیدن این سوال یه جستجو می کردید. این طوری سریعتر هم به جواب می رسیدید
می تونید جواب سوالتون رو ایجا پیدا کنید
https://barnamenevis.org/showthread.php?t=187451
دوستان خوبم.آیا راهی هست که عدد وارد بشه ولی بعد از فشرده شدن کلید تشخیص داده بشه که عدد وارد شده صحیح هست یا نه. و اگر عدد وارد شده اشتباه بود پیام "لطفا یک عدد معتبر وارد کنید" صادر بشه.یعنی امکان اشتباه وارد شدن عدد باشه و بعد از فشرده شدن کلید(یعنی کد مربوطه در ایونت کلیک باتون نوشته شود نه در ایونت کی پرس تکست) مشخص بشه که عدد درست است یا خیر؟
این کد برای اعتبار سنجی اعداد اعشاری
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)برای سوال دوم هم می تونی کد مورد نظرتو تو رویداد KeyDown کادر متنی یا همون textbox خودت قرار بده بعد اگر عدد اشتباه بود با استفاده از دستور زیر پیغامتو نمایش بده
{
if ( !( char.IsDigit( e.KeyChar) || char.IsControl( e.KeyChar ) ||(e.KeyChar== (char )46)) )
{
e.Handled = true;
}
}
MessageBox.Show("متن پیغام")اما یه پیشنهاد دوست من این روند شما به نظر من اشتباهه چون همه سوال های شما در حد ابتدایی هست و اینطوری به نتیجه مطلوب نمی رسید شاید الان مشگلتون حل بشه اما در آینده به مشگل بر می خورید شما اگر یه کتاب آموزش C# یخونید به راحتی می تونید کدهایی از این قبیل رو بنویسید
البته امیدوارم ناراحت نشید و منظور این نبود سوال نکنید شما هر گونه سوالی داشته باشید بچه های اینجا همه در خدمت هستن از جمله خودم چون خودمم خیلی چیزا اینجا یاد گرفتم و دارم یاد می گیرم
حرف من فقط یه پیشنهاده
2باره سلام
public bool isNumeric(string str){
bool resPoint = false;
for(int i=0;i<str.Length;i++)
{
if ((str[i] == '-' || str[i] == '+') && i == 0)
continue;
if (str[i] == '.')
if (resPoint == false)
{
resPoint = true;
continue;
}
else
return false;
if (str[i] < '0' || str[i] > '9')
return false;
}
return true;
}
روش استفاده
MessageBox.Show( isNumeric("-123.456").ToString()); // true;
مثال 2
if (!isNumeric("-123.45.6")) // false, because exist 2 float point in The String
MessageBox.Show("IS Not A Numerical Value");
else
MessageBox.Show("A Numerical Value");
آخرین ویرایش به وسیله nasser_ray : سه شنبه 12 آبان 1388 در 00:18 صبح دلیل: افزودن مثال 2
دوست عزیزم سلام. دوست خوبم من رشتم کامپیوتر است و تا حد زیادی با زبان دلفی آشنایی دارم.حالا هم اومدم سی شارپ رو یاد بگیرم.از اینکه دوستان خوبی چون شما دارم هم افتخار می کنم.من سه تا ebook حجیم در مورد آموزش سی شارپ دارم که حوصله نمی کنم بخونمشون.و به همین ترتیب سوال و جواب توی سایت برام جذاب تر از خوندن کتاب هست. به هر حال از اینکه راهنمایی کردین خوشحالم.دوست خوبم به خدای بزرگ می سپارمتون..دوست من این روند شما به نظر من اشتباهه چون همه سوال های شما در حد ابتدایی هست و اینطوری به نتیجه مطلوب نمی رسید شاید الان مشگلتون حل بشه اما در آینده به مشگل بر می خورید شما اگر یه کتاب آموزش C# یخونید به راحتی می تونید کدهایی از این قبیل رو بنویسید