PDA

View Full Version : سوال: محدودیت برای ورود داده ها



ace_sina
جمعه 01 مرداد 1389, 23:28 عصر
سلام ، خسته نباشید
تویه یکی از برنامه هایی که دارم مینویسم میخوام ورودی هایی که از texBox وارد میشه فقط عدد باشه . تو چندتا نرم افزار آموزشی که میگشتم به یه مثالی بر خوردم که میخواست ورودی textbox محدود به عدد کنه ، مثالشم این بود :

private void button1_Click(object sender, EventArgs e)
{
int age;
int.TryParse(textBox1.Text, out age);
if (age == 0)
{
MessageBox.Show("pleas enter a number");
textBox1.Text = "";
textBox1.Focus();
}

شرح برنامه :
هر وقت کاربر سن خودش رو تو textBox وارد کرد و بر روی button1 کلیک کرد دستور int.TryParse(textBox1.Text, out age); بررسی میکنه که عددی که در textBox1 وارد شده از نوع صحیح است یا نه . اگه بود اون مقدار رو در متغییر age قرار میده و اگر کاربر در textBox چیزی وارد نکنه و یا داده ی ورودی غیر عدد باشد مقدار صفر رو در متغییر age قرار میده . برای همین در شرط if برابری age با صفر بررسی شده است که در صورت لزوم پیغام مناسب در MessageBox چاپ شود .

ولی من مراحل بالا رو طی کردم ولی در حین اجرای برنامه اگر کاربر چیزی در textBox وارد نکرد برنامه به درستی کار میکنه ولی اگر ورودی از نوع کاراکتر یا رشته باشه برنامه به درستی کار نمیکنه ! یعنی کنترل MessageBox رو نشون نمیده .
نمیدونم مشکل از کده یا نه ؟
راه دیگه ای هم واسه محدود کردن textBox وجود نداره ؟

mmd2009
جمعه 01 مرداد 1389, 23:35 عصر
با سلام

دوست عزیز رو رویداد Key_Press کد زیرو ر بذارید




if (!(char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back))
e.Handled = true;



مشکلتون حل میشه

البته به نظر من برای سن از MaskTextBox استفاده بکنید که کنترلش هم راحتره و کافیه دو مقدار وردی بگیره و اگر کد بالا رو هم بذارید تو رویداد Key_Press اون کارتون راحتر میشه