首页 新闻 会员 周边

winform中如何在TextBox中只能输入数字(可以带小数点)

0
悬赏园豆:10 [已解决问题] 解决于 2010-10-12 15:56

winform中怎么控制文本框中只能输入数字(可以带小数点),并且数字是半角的,最好用正规表达式实现,谢谢!

风也无奈的主页 风也无奈 | 初学一级 | 园豆:22
提问于:2010-10-12 09:41
< >
分享
最佳答案
0

可以采用像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;

收获园豆:5
dodohua | 小虾三级 |园豆:1037 | 2010-10-12 10:11
谢谢
风也无奈 | 园豆:22 (初学一级) | 2010-10-12 15:55
其他回答(3)
0

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;

}

收获园豆:5
悠悠思丶 | 园豆:189 (初学一级) | 2010-10-12 10:53
谢谢
支持(0) 反对(0) 风也无奈 | 园豆:22 (初学一级) | 2010-10-12 15:55
0

以上都行

Yellows | 园豆:45 (初学一级) | 2010-10-12 10:57
0

确实牛

茂茂 | 园豆:2892 (老鸟四级) | 2010-10-12 15:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册