winform(c#)怎样验证用户的有效性输入

ysotn 2003-11-03 02:42:49
请高手指点一二
...全文
103 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
雪狼1234567 2003-11-21
在keypress事件中加入如下的代码:
if ( !(((e.KeyChar >= (char)48) && (e.KeyChar <= (char)57)) || (e.KeyChar == (char)13) || (e.KeyChar == (char)46) || (e.KeyChar == (char)45) || (e.KeyChar == (char)8)))
{
MessageBox.Show("输入错误,只能输入整数和小数");
e.Handled = true;
}
  • 打赏
  • 举报
回复
randy0623 2003-11-03
笨办法
private void textBoxNum_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
this.ReadOnly =false;
switch(e.KeyCode)
{

case (Keys)(int)'0':
break;
case (Keys)(int)'1':
break;
case (Keys)(int)'2':
break;
case (Keys)(int)'3':
break;
case (Keys)(int)'4':
break;
case (Keys)(int)'5':
break;
case (Keys)(int)'6':
break;
case (Keys)(int)'7':
break;
case (Keys)(int)'8':
break;
case (Keys)(int)'9':
break;
//case (Keys)(int)'.':
// break;
case Keys.Left:
break;
case Keys.Right:
break;
case Keys.End:
break;
case Keys.Home:
break;
case Keys.Tab:
break;
case Keys.Back:
break;
case Keys.Delete:
break;
case Keys.Decimal:
break;

default:
this.ReadOnly=true;
break;
}

}
  • 打赏
  • 举报
回复
kuangren 2003-11-03
你要判断一个字符是否数字的话,可以用Char.IsDigit或者Char.IsNumber等判断,
你加个循环就可以判断textbox里面的是不是数字了
或者你用try{转换数据类型}catch{}来判断都可以,如果转换不成功就catch到异常
你还可以用ascii码来判断
  • 打赏
  • 举报
回复
caff 2003-11-03
恐怕不能再详细了,验证18个数字的正则表达式就是"\d{18}"
推荐去看看正则表达式吧,功能远比你想像的强大的多
  • 打赏
  • 举报
回复
gabriel1 2003-11-03
小李说详细点。
  • 打赏
  • 举报
回复
softye 2003-11-03
sorry
try
{
System.Convert.ToInt64(text1.Text.ToString());
MessageBox.Show("数字");
}
catch(System.Exception e)
{
//不是数字
}
  • 打赏
  • 举报
回复
microli 2003-11-03
你只要将身份证的那个控件——ValidationExpression的正则表达式这样表示就可以了\d{18}
  • 打赏
  • 举报
回复
ht_csc 2003-11-03
我就是用类似softye(阿申)的方法作的,怎么不行?
  • 打赏
  • 举报
回复
softye 2003-11-03

try
{
System.ToInt64(text1.Text.ToString());
MessageBox.Show("数字");
}
catch(System.Exception e)
{
//不是数字
}
  • 打赏
  • 举报
回复
ysotn 2003-11-03

不是吧,我是输入有效性啊
比如我只想用户输入数字不能输入字符
  • 打赏
  • 举报
回复
softye 2003-11-03
用正则表达式
例:18身分证验证

string text = "12345678901234567X";
string Pattern = @"(\d){17}" ;
MatchCollection MatchCol = Regex.Matches(text,Pattern);
for(int i=0;i<MatchCol.Count;i++)
{

MessageBox.Show(MatchCol[i].ToString());
}
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.7w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
申请成为版主
帖子事件
创建了帖子
2003-11-03 02:42
社区公告

让您成为最强悍的C#开发者