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

 我来答
大鼻子叔叔松鼠
2011-02-26 · TA获得超过112个赞
知道答主
回答量:50
采纳率:0%
帮助的人:32.2万
展开全部
使用字符串方法和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)
{
说明输入的是负数
}

以上只是粗略代码,并不完全正确。只是提供一个思路。
你自己看着办吧
MrFoch
2011-02-27 · TA获得超过849个赞
知道小有建树答主
回答量:253
采纳率:100%
帮助的人:266万
展开全部
3楼的做法比较可行简单,我都是这么做的。
在TextChanged事件中,用try,catch块,捕捉从string到int转换的异常。如果有异常则Cancel掉。
否则再判断转换结果是否大于0.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱吃大虾的螃蟹
2011-02-27 · TA获得超过147个赞
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:191万
展开全部
1 不论什么字符先强转判断是不是数字用捕获异常抓取。再判断正数就好了。
2 本身他有验证控件的 就是弄上界面不好看。
3 网上查有正则表达式的 用这个全部都能判断。
祝成功。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sigmud
2011-02-27 · 超过30用户采纳过TA的回答
知道答主
回答量:109
采纳率:0%
帮助的人:93万
展开全部
方法一:
//记录转换的正数
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?"成功":"失败");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
igfblp
2011-02-27 · TA获得超过421个赞
知道答主
回答量:336
采纳率:100%
帮助的人:0
展开全部
简单的方法实现
拖一个TEXTBOX 然后双击这个控件
之后出来一个TEXTBOX1_CHANGED()
{
在这个函数里用正则表达式约速一下就可以了
可以这样写
if(!match(正则表达式写这里))
{
TEXTBOX1.TEXT="";
MESSBOX.SHOW("只能输入数字");
}

}
这个TEXTBOX1_CHUANGED发生在光标移出文本框时
如想样要用户输入时就限定 那么 把限治写在TEXTBOX1_CHANGING()
{}这个函数里
这个函数发生在用户输入时
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式