PDA

View Full Version : فیلتر کردن ورودیهای کاربر در textbox



saffari2005
چهارشنبه 04 خرداد 1384, 11:15 صبح
سلام
می خوام در یک text box کاربر اجازه ورود حروف را نداشته باشد و فقط اعداد را بتواند وارد کند .میشه راهنمایی کنید! :sunglass:

فاطمه هاشمیان
چهارشنبه 04 خرداد 1384, 15:16 عصر
مثلا" اگر میخواهی در صورت وارد کردن مقداری بجز عدد در TextBox به کاربر پیغام بدهد یک ErrorProvider به فرمت اضافه کن و در Event KeyPress از TextBox این کد رو اضافه کنی


if(char.IsDigit(e.KeyChar) == false)
ErrorProvider.SetError(TextBox,".فقط مقدار عددی وارد نمایید");
else
ErrorProvider.SetError(TextBox,"");

:موفق:

saffari2005
چهارشنبه 04 خرداد 1384, 18:06 عصر
ممنون ! :sunglass:

فاطمه هاشمیان
چهارشنبه 04 خرداد 1384, 18:14 عصر
خواهش میکنم :oops:

Happy_davood
یک شنبه 15 خرداد 1384, 16:06 عصر
سلام
به نظرم بهتره اینکه اصلاً اجازه ورود کاراکترهای غیر مجاز داده نشه و این دقیقاً سئوال شماست . پیشنهاد من اینه :


private void OnKeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
this.IsNumber = true;

// Check if current key is number or not
if(e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
if(e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
if(e.KeyCode != Keys.Back)
this.IsNumber = false;
}

private void OnKeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if(this.IsNumber == false)
e.Handled = true;
}


در اینجا وقتی Handled برابر با true میشه یعنی اینکه ما خودمون این وقفه رو پردازش کردیم و در اینصورت دیگه کاراکتر زده شده تایپ نمیشه و صرفنظر میشه مگر اینکه عدد باشه .

saffari2005
سه شنبه 17 خرداد 1384, 14:13 عصر
ممنون .عالی بود :موفق:

GentleGuy
سه شنبه 24 خرداد 1384, 02:06 صبح
لذت بردیم آقا داوود شاد( Happy_davood)

Happy_davood
سه شنبه 24 خرداد 1384, 23:08 عصر
با جواب شما شادتر هم شدم . حالا دیگه داود شاد شاد
ممنون

GentleGuy
جمعه 27 خرداد 1384, 00:39 صبح
:wink:

احمد سامعی
سه شنبه 18 مهر 1385, 00:21 صبح
سلام
به نظرم بهتره اینکه اصلاً اجازه ورود کاراکترهای غیر مجاز داده نشه و این دقیقاً سئوال شماست . پیشنهاد من اینه :
در اینجا وقتی Handled برابر با true میشه یعنی اینکه ما خودمون این وقفه رو پردازش کردیم و در اینصورت دیگه کاراکتر زده شده تایپ نمیشه و صرفنظر میشه مگر اینکه عدد باشه .

استاد این روش خوب بود
اما من می خوام یک تکس باکس برای ماشین حساب طراحی کنم
می شه راهنمایی کنید چطور تو حقله تا وقتی که ممیز زده نشده بمون سمت راست و اگر زده شد حرکت کنه و از همه مهمتر اینکه کاراکتر صفر و مییز کنارش پاک نشه می دونی که چی می گم

در ضمن نام جمع و تفریق و ضرف در قسمت Num Lock چی ؟ تا از کی کد استفاده کنم
با تشکر

HAIdle
سه شنبه 18 مهر 1385, 14:33 عصر
سلام
به نظرم بهتره اینکه اصلاً اجازه ورود کاراکترهای غیر مجاز داده نشه و این دقیقاً سئوال شماست . پیشنهاد من اینه :


private void OnKeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
this.IsNumber = true;

// Check if current key is number or not
if(e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
if(e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
if(e.KeyCode != Keys.Back)
this.IsNumber = false;
}

private void OnKeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if(this.IsNumber == false)
e.Handled = true;
}


در اینجا وقتی Handled برابر با true میشه یعنی اینکه ما خودمون این وقفه رو پردازش کردیم و در اینصورت دیگه کاراکتر زده شده تایپ نمیشه و صرفنظر میشه مگر اینکه عدد باشه .

چرا اینقدر لقمه را دور سرمون بپیچونیم؟


private void numTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar) &&
!char.IsControl(e.KeyChar))
e.Handled = true;
}

ahmadraj
جمعه 03 آذر 1385, 22:03 عصر
یه راه بهتر :
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) e.KeyChar = '\0';
}

Crazy_Clever
شنبه 04 آذر 1385, 13:27 عصر
ممنون دوست عزیز
به چیزی شبیه این نیاز داشتم، خیلی خیلی تشکر
فکر کنم آخری بهتره و ساده تر!؟!
نه غلااااااااااااااااااااااا ااااااااااااااااااااااااا ااااااااااااام