在Winform中如何限定TextBox,只让用户写入数字,而不能录入字符

jjyzhw111 2004-10-29 03:23:02
我只知道在Webform 中有专门的控件,来验证TextBox,但在CS下如何写代码,请help.....
...全文
248 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jjyzhw111 2004-10-29
  • 打赏
  • 举报
回复
OK谢谢各位兄弟的help.
我采用的方法如下:
if(e.KeyChar>48&&e.KeyChar<57)
{
str_bool=true;
}
else
{
str_bool=false;
}
str_bool是我定义的bool类型的变量,
谢谢
sbkyv 2004-10-29
  • 打赏
  • 举报
回复
赞成 xiaohutushen(xiaohutushen) 的做法
winnergx 2004-10-29
  • 打赏
  • 举报
回复
判断ASIIC码
zhouye6666 2004-10-29
  • 打赏
  • 举报
回复
对头,用正则
tylike 2004-10-29
  • 打赏
  • 举报
回复
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
e.Handled = IsNumber(e.KeyChar)
End Sub
Private Function IsNumber(ByVal N As Char) As Boolean
Return System.Text.RegularExpressions.Regex.IsMatch(N, "^[+|-]?(\d+(\.\d*)?|\d{1,2}(,\d{3})*(\.\d*)?)$")
End Function
给你VB版的例子,不过C#和他一样的,呵呵盗用了 520NET(随风)的正则
jyu_730 2004-10-29
  • 打赏
  • 举报
回复
可以用数据验证器Validator,你可以去查查资料,因为Validator有很多种,你看哪种适合你!!绝对能解决你的问题哈
520NET 2004-10-29
  • 打赏
  • 举报
回复
/// <summary>
/// 验证数字
/// </summary>
/// <param name="number">输入字符串number</param>
/// <returns>返回是否是数字</returns>
public bool IsNumber(string number)
{
return Regex.IsMatch(number, @"^[+|-]?(\d+(\.\d*)?|\d{1,2}(,\d{3})*(\.\d*)?)$");
}
seamansoftcom 2004-10-29
  • 打赏
  • 举报
回复
有这样的商业控件,免费的也有,反正微软没有提供。

如果不想用控件,自己可以在TextBox_Onkeypress事件中,如果输入的key不是数字对应的key,取消事件。
xiaohutushen 2004-10-29
  • 打赏
  • 举报
回复
写到keypress事件下判断一下不就可以了。
判断keycode是不是在48和112之外(可能是这个之外。你可以查MSDN)
xiaoslong 2004-10-29
  • 打赏
  • 举报
回复
帮顶
ArEoN 2004-10-29
  • 打赏
  • 举报
回复
办法很多
可以用正则表达式
或者直接
try
{
int num = convert.int32(text);
}
catch
{}

110,547

社区成员

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

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

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