winform中怎么控制文本框中只能输入数字(可以带小数点),并且数字是半角的,最好用正规表达式实现,谢谢!
可以采用像web表单验证的方式,利用textbox的TextChanged事件,每当textbox内容变化时,调用正则表达式的方法验证,用一个label在text后面提示输入错误,具体代码如下:
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text.Trim() != "")
{
if (!Validate(textBox1.Text.Trim(), @"^(-?\d+)(\.\d+)?$"))
{
label1.Text = "请输入数字";
}
else
{
label1.Text = "匹配正确";
}
}
else {
label1.Text = "";
}
}
/**////是否符合指定的正则表达式
static public bool Validate(string str, string regexStr)
{
Regex regex = new Regex(regexStr);
Match match = regex.Match(str);
if (match.Success)
return true;
else
return false;
}
注意要引用命名空间:using System.Text.RegularExpressions;
function test()
{
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105))) //考虑小键盘上的数字键
{
alert("只能是数字!");
document.form1.text1.focus();
}
}
或者
function test(NUM)
{
var i,j,strTemp;
strTemp="0123456789";
if ( NUM.length== 0)
return 0
for (i=0;i<NUM.length;i++)
{
j=strTemp.indexOf(NUM.charAt(i));
if (j==-1)
{
alert("只能是数字!");
return false;
}
}
//说明是数字
return true;
}
以上都行
确实牛