C#如何在textbox中只输入数字并指定位数

是windows应用程序
2024-12-03 03:13:39
推荐回答(3个)
回答(1):

使用RegularExpressionValidator控件,工具箱就有。


ControlToValidate="TextBox1"就是指你要控制的textbox的ID,ValidationExpression="[0-9]{4,8}"就是指你可以输入4--8位数字。此外还可以指定其他内容,譬如:ValidationExpression="[a-zA-Z0-9]{6,18}"是指可以输入长度为 (4 ~ 8) 位的英文字母或数字。这里面用到的都是“正则表达式”,感兴趣的话可以在网上搜一下。

那么你可以引入下面的:
using System.Text.RegularExpressions;
public static bool Validate(string regexString,string validateString)
{
Regex regex = new Regex(regexString);
return regex.IsMatch(validateString.Trim());
}
bool numOne=Validate("^[0-9]*$",TextBox1.Text);
限制输入数字:^[0-9]*$
限制输入n位的数字:^\d{n}$
限制输入至少n位数字:^\d{n,}$
限制输入m-n位的数字:^\d{m,n}$
限制输入零和非零开头的数字:^(0|[1-9][0-9]*)$
限制输入有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
限制输入有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
限制输入非零的正整数:^\+?[1-9][0-9]*$
限制输入非零的负整数:^\-[1-9][0-9]*$
限制输入非负整数(正整数 + 0) ^\d+$
限制输入非正整数(负整数 + 0) ^((-\d+)|(0+))$
限制输入长度为3的字符:^.{3}$
还可以限制如下类型:
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数 ^(-?\d+)(\.\d+)?$

回答(2):

textbox控件的MaxLength属性用来指定输入的长度
然后可以在它的key_press事件中来限定输入数字,退格键,小数点

///


/// 文本框输入限制,只能输入数字、退格键、和小数点
///

///
///
private void txt_shouRu_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 == '.')
{
if (((TextBox)sender).Text.LastIndexOf('.') != -1)
{
e.Handled = true;
}
}
else
{
e.Handled = true;
}
}
}

回答(3):



调用的时候:
1:只能输入整数

2:只能输入带小数点的数字


其他的例子 自己看看js代码就能看明白了。