c#中如何将文本框中输入的字符进行判断,确定它是否为正数.(输入的字符不光是字母和数字,还可能是各种符号)

如题所述

使用字符串方法和foreach循环
int isTrue = 0; //用于辅助判断是否是正、负数
int index = textbox1.Text.IndexOf("-");
if( index == 0)
{
//说明首字符是负号,接着进行后面是否为数字的判断
foreach(char c in textbox1.Text)
{
if(c == '-' )
{
isTrue++; //每循环一次加一次,如果最后这个数跟字符串的总数一样,则
//说明输入的是负数
continue; //首字符是负号,后面代码不执行。继续循环,
//判断后面字符是否是数字
}

//判断后面的字符是否是数字
if(c == '0' || c == '1' || c == '2' && c == '3' || c == '4' || c == '5' ||c == '6' || c == '7' ||
c == '8' || c == '9')
{
isTrue++;
continue;
//说明输入的是数字,继续循环判断
}
else
{
break;
//说明不是循环,跳出判断
}
}
}

if ( isTrue == textbox.Text.Count)
{
说明输入的是负数
}

以上只是粗略代码,并不完全正确。只是提供一个思路。
你自己看着办吧
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-27
3楼的做法比较可行简单,我都是这么做的。
在TextChanged事件中,用try,catch块,捕捉从string到int转换的异常。如果有异常则Cancel掉。
否则再判断转换结果是否大于0.
第2个回答  2011-02-27
1 不论什么字符先强转判断是不是数字用捕获异常抓取。再判断正数就好了。
2 本身他有验证控件的 就是弄上界面不好看。
3 网上查有正则表达式的 用这个全部都能判断。
祝成功。
第3个回答  2011-02-27
方法一:
//记录转换的正数
uint positive;
//判断字符串能否转换成正数
MessageBox.Show(uint.TryParse(str.Trim(), out positive)?"成功":"失败");
方法二:
使用正则表达式
要先导入命名空间 using System.Text.RegularExpressions
//构建正则表达式
Regex rex = new Regex(@"^[1-9]\d*$" );
//得到判断信息
Match match = rex.Match(str.Trim());
//match.Success就是判断的结果
MessageBox.Show(match.Success?"成功":"失败");
第4个回答  2011-02-27
简单的方法实现
拖一个TEXTBOX 然后双击这个控件
之后出来一个TEXTBOX1_CHANGED()
{
在这个函数里用正则表达式约速一下就可以了
可以这样写
if(!match(正则表达式写这里))
{
TEXTBOX1.TEXT="";
MESSBOX.SHOW("只能输入数字");
}

}
这个TEXTBOX1_CHUANGED发生在光标移出文本框时
如想样要用户输入时就限定 那么 把限治写在TEXTBOX1_CHANGING()
{}这个函数里
这个函数发生在用户输入时
相似回答