好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
C#如何限制Textbox文本框只能输入数字? 关闭 返回上一级  

C#如何限制Textbox文本框只能输入数字?
+ 查看更多

发布日期:2018-02-24 17:09
分类:C#
浏览次数:594
我正在写一个含有Textbox文本框控件的窗体应用程序,并且我希望这个文本框只能接受整数值。我曾经通过重载KeyPress事件以删除不符合规范的字符来完成这种验证。我也曾尝试过考虑使用MaskedTextBox控件,但我仍想要一个更通用的、能通过正则表达式或者依赖于其他控件的值而进行工作的解决方案。我希望得到的解决方法是能够使用户无法输入非数字字符或者在用户输入非数字字符时立即向用户提供关于无效字符的反馈。

回答:

有两种方法可以满足你的需求:
1.使用NumericUpDown控件代替Textbox。 NumericUpDown很好的一点就是能够对输入的数据进行过滤。当然,在这个控件的作用下用户能够通过操作键盘的上下箭头来增加或减少当前数值的大小。
2.增加适当的键盘处理事件,以防止任何数字的输入。我曾经在一个标准的TextBox控件中用以下这两个事件处理程序成功解决这个问题:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) &&
        (e.KeyChar != '.'))
    {
            e.Handled = true;
    }

    // only allow one decimal point
    if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
    {
        e.Handled = true;
    }
}
如果你希望的TextBox控件总不能出现小数位,你可以删除对”.”排查(以及随后检查多个'.'的排查)。如果你希望的TextBox控件允许负值,您还可以添加“ - ”的排查。
如果要限制用户的输入数字的长度,你可以这样设置:
textBox1.MaxLength = 2; // this will allow the user to enter only 2 digits(这将允许用户只能输入2位数字)
上一篇如何在C#中生成随机的字母数字字符串?
将C#对象转换为.NET 4中的JSON字符串下一篇
下一篇将C#对象转换为.NET 4中的JSON字符串

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2017  苏州卡达网络科技有限公司 好问 GOODQ.TOP 备案号:苏ICP备09008221号-5