C#中实现文本框只能输入数字

代码
   
     
文本框的keypress事件:
在你所要输入的文本框(比如txtNum)的KeyPress事件编写如下代码:
private void txtNum_KeyPress( object sender, KeyPressEventArgs e)
{
if (!char.IsNumber(e.KeyChar) && e.KeyChar!=(char)Keys.Back)

{
e.Handled
= true ;
}
}

用方法实现: 在TextChanged事件中
^ [ 0 - 9 ]{ 1 ,}$ 正则表达式
Regex r
= new Regex( " ^[0-9]{1,}$ " );
if ( ! r.IsMatch(textBox1.Text))
{
Messagebox.Show(
" 请输入数字 " );
}

文本框onkeydown事件:
txt1.Attributes.Add(
" onkeydown " , " if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)) && (event.keyCode!=8) &&

(
event .keyCode != 9 ) && ( event .keyCode != 13 ) && ( event .keyCode != 46 )){alert( ' 请输入数字 ' ); return false ;} " );

文本框KeyPress事件:
private void txtNumber_KeyPress( object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar >= ' 0 ' && e.KeyChar <= ' 9 ' )
{
e.Handled
= false ;
return ;
}
e.Handled
= true ;
}

利用正则表达式限制:
利用正则表达式限制网页表单里的文本框输入内容:
用正则表达式限制只能输入中文:onkeyup
= " value=value.replace(/[^\u4E00-\u9FA5]/g,'') " onbeforepaste = " clipboardData.setData('text',clipboardData.getData('text').replace(/

[
^ \u4E00 - \u9FA5] / g, '' )) "
1 .用正则表达式限制只能输入全角字符: onkeyup = " value=value.replace(/[^\uFF00-\uFFFF]/g,'') " onbeforepaste = " clipboardData.setData('text',clipboardData.getData

(
' text ' ).replace( / [ ^ \uFF00 - \uFFFF] / g, '' )) "
2 .用正则表达式限制只能输入数字:onkeyup = " value=value.replace(/[^\d]/g,'') " onbeforepaste = " clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,'')) "


3 .用正则表达式限制只能输入数字和英文:onkeyup = " value=value.replace(/[\W]/g,'') " onbeforepaste = " clipboardData.setData('text',clipboardData.getData('text').replace(/

[
^ \d] / g, '' )) "



文本框金额输入:
< asp:RegularExpressionValidator ID = " RegularExpressionValidator1 " runat = " server " ControlToValidate = " txtAmount "
Display
= " None " ErrorMessage = " 收款金额只能是数字,最多4位小数 " ValidationExpression = " ^[0-9]+(\.[0-9]{0,4})?$ " ></ asp:RegularExpressionValidator >

 

你可能感兴趣的:(只能输入数字)