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

ysotn 2003-11-03 02:42:49
请高手指点一二
...全文
137 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
雪狼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());
}

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧