C#的winform中如何控制TextBox中只能输入数字,包括0
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#的winform中如何控制TextBox中只能输入数字,包括0相关的知识,希望对你有一定的参考价值。
请各位前辈指教一下,最好把代码写上,给我参考一下 谢谢
参考技术A 这个是一个用正则表达式实现的整数验证,但你使用时最好在提交的按钮事件中去校验,public static bool IsIntNum(string str,bool msg)
System.Text.RegularExpressions.Regex reg1
= new System.Text.RegularExpressions.
Regex(@"^[-]?[1-9]1\d*$|^[0]1$");
bool ismatch=reg1.IsMatch(str);
if(!ismatch)
MessageBox.Show("您输入的数字不是整数!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return ismatch;
注意,这里调用了MessageBox对象,必须在引用时引用Windows.form 参考技术B private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
e.Handled = true;
if (e.KeyChar >= '0' && e.KeyChar <= '9')
e.Handled = false;
参考技术C public static function CheckNumber(strValue:String):Boolean
var regTextNumber:RegExp = /^(\d)*$/;
return regTextNumber.test(strValue);
这个方法就是验证数字的!
Winform TextBox中只能输入数字的几种常用方法(C#)
方法一: private void tBox_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 0x20) e.KeyChar = (char)0; //禁止空格键 if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length == 0)) return; //处理负数 if (e.KeyChar > 0x20) { try { double.Parse(((TextBox)sender).Text + e.KeyChar.ToString()); } catch { e.KeyChar = (char)0; //处理非法字符 } } } 方法二: private void TextBox_KeyPress(object sender, KeyPressEventArgs e) { if(e.KeyChar!=8&&!Char.IsDigit(e.KeyChar)) { e.Handled = true; } } 或者 private void TextBox_KeyPress(object sender, KeyPressEventArgs e) { if(e.KeyChar!=‘\b‘&&!Char.IsDigit(e.KeyChar)) { e.Handled = true; } } 方法三: private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if(e.KeyChar!=‘\b‘)//这是允许输入退格键 { if((e.KeyChar<‘0‘)||(e.KeyChar>‘9‘))//这是允许输入0-9数字 { e.Handled = true; } } } 方法四: private void textBox1_Validating(object sender, CancelEventArgs e) { const string pattern = @"^\d+\.?\d+{1}quot;; string content = ((TextBox)sender).Text; if (!(Regex.IsMatch(content, pattern))) { errorProvider1.SetError((Control)sender, "只能输入数字!"); e.Cancel = true; } else errorProvider1.SetError((Control)sender, null); } 方法五: private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if(e.KeyChar==‘.‘ && this.textBox1.Text.IndexOf(".")!=-1) { e.Handled=true; } if(!((e.KeyChar>=48 && e.KeyChar<=57) || e.KeyChar==‘.‘ || e.KeyChar==8)) { e.Handled=true; } } 方法六: private void tbx_LsRegCapital_KeyPress(object sender, KeyPressEventArgs e) { if (!Char.IsNumber(e.KeyChar) && !Char.IsPunctuation(e.KeyChar) && !Char.IsControl(e.KeyChar)) { e.Handled = true;//消除不合适字符 } else if (Char.IsPunctuation(e.KeyChar)) { if (e.KeyChar != ‘.‘ || this.textBox1.Text.Length == 0)//小数点 { e.Handled = true; } if (textBox1.Text.LastIndexOf(‘.‘) != -1) { e.Handled = true; } } } 方法七: 利用ASCII码处理办法、 { if ((e.KeyChar <= 48 || e.KeyChar >=57) && (e.KeyChar != 8) && (e.KeyChar != 46)) e.Handled = true; ================48代表0,57代表9,8代表空格,46代表小数点 }
以上是关于C#的winform中如何控制TextBox中只能输入数字,包括0的主要内容,如果未能解决你的问题,请参考以下文章
c# 的WinForm 中 textbox内如何限制只输入为0-100之间的数字?
C#中如何限制Textbox控件中只能输入数字,要能用退格的
winform中如何控制一个textbox,输入身份证的时候只能是半角,如果是全角的话输入值怎样切换成半角字符?
请问在C#的Winform下如何用正则表达式限制用户只能在textBox中输入18位的身份证号码。
C#开发wince平台下的winform程序,textbox的keypress事件无法触发,本意是想限制textbox只能输入数字。