c#中怎么检验textbox.text输入的是数字组合,并把它赋给一个int型

在textbox中输入一串字符,检验其中没有字母出现,只是数字组合(允许负),并把它赋给一个int型Samplevalue用于做比较.我写如下:foreach(charm... 在textbox中输入一串字符,检验其中没有字母出现,只是数字组合(允许负),并把它赋给一个int型Samplevalue用于做比较.我写如下:
foreach (char m in textBox1.Text)
{
int n = 0;
if (m != '0' && m != '1' && m != '2' && m != '3' && m != '4' && m != '5' && m != '6' && m != '7' && m != '8' && m != '9' && m != '-')
{
n++;
}

if (n != 0)
{
MessageBox.Show("The input is wrong!");
}
else
{

}
}

int SampleValue = int.Parse(textBox1.Text);
虽然输入字母时会提示出错,但运行后下面这句话会提示错误
int SampleValue = int.Parse(textBox1.Text);
请高手指点下,怎么写出来..其实我写的还有几个BUG,比如说意思是输入的数字可以是正数和负数,即要是负数的话-号应该在最前面,如-100,但是上面100-0也不会出错的 !!! 高手来~~
展开
 我来答
清初夏侯t3
2007-11-29 · TA获得超过3478个赞
知道大有可为答主
回答量:3199
采纳率:50%
帮助的人:1379万
展开全部
楼主,还是用textBox的keyPress事件来处理把,把所有不符合输入条件的都让他屏蔽掉。根据您给的条件,这个事件代码可以这么写:
private void textBox1_keyPress(object sender,EventArg e)
{
if(e.KeyChar<48 || e.KeyChar>57 || e.KeyChar!='-')
{
e.Handle==true;//true表示把这次按键给取消掉
}
}
百度网友392e9fc52
2007-11-29 · TA获得超过191个赞
知道小有建树答主
回答量:147
采纳率:100%
帮助的人:0
展开全部
用正则表达式
using System.Text.RegularExpressions;
public static bool IsValidNumber(string num)
{
const string regPattern = @"^((-\d+)|(0+))$";//验证是否是负整数的正则表达式
return Regex.IsMatch(num, regPattern);//True为数字;False 不是数字
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dztceo
2007-11-29 · 超过102用户采纳过TA的回答
知道小有建树答主
回答量:296
采纳率:0%
帮助的人:286万
展开全部
2种方法,一种是js脚本在输入的时候控制只能输入数字。
另一个方法是使用正则表达式判断。
楼上2位的回答都不错!完全能解决你的问题!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式