c#textBox控件限制只允许输入数字及小数点 转载

  1. //判断按键是不是要输入的类型。
  2.  
  3. if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && (int)e.KeyChar != 8 && (int)e.KeyChar != 46)
  4.  
  5. e.Handled = true;
  6.  
  7. //小数点的处理。
  8.  
  9. if ((int)e.KeyChar == 46) //小数点
  10.  
  11. {
  12.  
  13. if (textBox1.Text.Length <= 0)
  14.  
  15. e.Handled = true; //小数点不能在第一位
  16.  
  17. else
  18.  
  19. {
  20.  
  21. float f;
  22.  
  23. float oldf;
  24.  
  25. bool b1 = false, b2 = false;
  26.  
  27. b1 = float.TryParse(textBox1.Text, out oldf);
  28.  
  29. b2 = float.TryParse(textBox1.Text + e.KeyChar.ToString(), out f);
  30.  
  31. if (b2 == false)
  32.  
  33. {
  34.  
  35. if (b1 == true)
  36.  
  37. e.Handled = true;
  38.  
  39. else
  40.  
  41. e.Handled = false;
  42.  
  43. }
  44.  
  45. }
  46.  
  47. }

   处理只输入数字的:

  1. 方法一:
  2.  
  3. private void tBox_KeyPress(object sender, KeyPressEventArgs e)
  4.  
  5. {
  6. if (e.KeyChar == 0x20) e.KeyChar = (char)0; //禁止空格键
  7. if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length == 0)) return; //处理负数
  8. if (e.KeyChar > 0x20)
  9. {
  10. try
  11. {
  12. double.Parse(((TextBox)sender).Text + e.KeyChar.ToString());
  13. }
  14. catch
  15. {
  16. e.KeyChar = (char)0; //处理非法字符
  17. }
  18. }
  19. }
  20.  
  21. 方法二:
  22.  
  23. private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
  24. {
  25. if(e.KeyChar!=8&&!Char.IsDigit(e.KeyChar))
  26. {
  27. e.Handled = true;
  28. }
  29. }
  30. 或者
  31.  
  32. private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
  33. {
  34. if(e.KeyChar!='\b'&&!Char.IsDigit(e.KeyChar))
  35. {
  36. e.Handled = true;
  37. }
  38.  
  39. }
  40.  
  41. 方法三:
  42.  
  43. private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
  44. {
  45. if(e.KeyChar!='\b')//这是允许输入退格键
  46. {
  47. if((e.KeyChar<'0')||(e.KeyChar>'9'))//这是允许输入0-9数字
  48. {
  49. e.Handled = true;
  50. }
  51. }
  52. }
  53.  
  54. 方法四:
  55.  
  56. private void textBox1_Validating(object sender, CancelEventArgs e)
  57. {
  58. const string pattern = @"^\d+\.?\d+{1}quot;;
  59. string content = ((TextBox)sender).Text;
  60.  
  61. if (!(Regex.IsMatch(content, pattern)))
  62. {
  63. errorProvider1.SetError((Control)sender, "只能输入数字!");
  64. e.Cancel = true;
  65. }
  66. else
  67. errorProvider1.SetError((Control)sender, null);
  68. }
  69.  
  70. 方法五:
  71.  
  72. private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
  73. {
  74. if(e.KeyChar=='.' && this.textBox1.Text.IndexOf(".")!=-1)
  75. {
  76. e.Handled=true;
  77. }
  78.  
  79. if(!((e.KeyChar>=48 && e.KeyChar<=57) || e.KeyChar=='.' || e.KeyChar==8))
  80. {
  81. e.Handled=true;
  82. }
  83.  
  84. }
  85.  
  86. 方法六:
  87.  
  88. private void tbx_LsRegCapital_KeyPress(object sender, KeyPressEventArgs e)
  89. {
  90. if (!Char.IsNumber(e.KeyChar) && !Char.IsPunctuation(e.KeyChar) && !Char.IsControl(e.KeyChar))
  91. {
  92. e.Handled = true;//消除不合适字符
  93. }
  94. else if (Char.IsPunctuation(e.KeyChar))
  95. {
  96. if (e.KeyChar != '.' || this.textBox1.Text.Length == 0)//小数点
  97. {
  98. e.Handled = true;
  99. }
  100. if (textBox1.Text.LastIndexOf('.') != -1)
  101. {
  102. e.Handled = true;
  103. }
  104. }
  105. }
  106.  
  107. 方法七:
  108.  
  109. 利用ASCII码处理办法、
  110. {
  111.  
  112. if ((e.KeyChar <= 48 || e.KeyChar >=57) && (e.KeyChar != 8) && (e.KeyChar != 46))
  113. e.Handled = true;
  114. ================48代表0,57代表9,8代表空格,46代表小数点
  115. }

 

判断是否为空

  1. if (string.IsNullOrWhiteSpace(txtDir.Text))//指示指定的字符串是 null、空还是仅由空白字符组成。

 

c#textBox控件限制只允许输入数字及小数点,是否为空的更多相关文章

  1. c#textBox控件限制只允许输入数字及小数点

    在textboxd的事件中的 KeyPress 事件,这样双击进入代码:输入以下代码 即可 //判断按键是不是要输入的类型. || () && ( && () e.Ha ...

  2. C#中设置TextBox控件中仅可以输入数字且设置上限

    首先设置只可以输入数字: 首先设置TextBox控件的KeyPress事件:当用户按下的键盘的键不在数字位的话,就禁止输入 private void textBox1_KeyPress(object ...

  3. ASP.NET c# textbox 正则表达式 文本框只允许输入数字(验证控件RegularExpressionValidator )

    <input type="text" name="test" onKeyUp="test1.value=(this.value=this.val ...

  4. TextBox控件保存上次的输入

    本片文章是参考C# 怎么让winform程序中的输入文本框保留上次的输入再此表示感谢重新在这里写一遍,是为了保存一下,方便自己下次使用可以很快的找到1.设置txtBox控件的配置文件2.选择Text ...

  5. contextField 键盘只允许输入数字和小数点,并且现在小数点后位数

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementS ...

  6. C# textBox控件只允许为数字和小数点并且提取出这个数字

    一. textBox控件实现只允许为数字和小数点 如下图所示,在textBox控件框内输入只能是 要在textBox控件属性设置按键按下的事件触发,如下图所示: 二.源代码 textBox控件只允许为 ...

  7. 只允许输入数字的TextBox控件

    [实例说明] 可以在TextBox控件中轻松地输入文本信息,输入的文本信息可以包括字母.数字.汉字等. 如果需要用户在TextBox控件中填写年龄信息,那么年龄信息应当只允许数字,怎么限制用户输入其他 ...

  8. c# TextBox只允许输入数字,禁用右键粘贴,允许Ctrl+v粘贴数字

    TextBox只允许输入数字,最大长度为10 //TextBox.ShortcutsEnabled为false 禁止右键和Ctrl+v private void txtNumber_KeyPress( ...

  9. 2019-3-22c# TextBox只允许输入数字,禁用右键粘贴,允许Ctrl+v粘贴数字

    TextBox 禁止复制粘贴 ShortcutsEnabled =false TextBox只允许输入数字,最大长度为10 //TextBox.ShortcutsEnabled为false 禁止右键和 ...

随机推荐

  1. docker-compose 快速部署Prometheus,监控docker 容器, 宿主机,ceph -- cluster集群

    话不多说上菜: 现在环境是这样: ceph 4台: 192.168.100.21  ceph-node1 192.168.100.22  ceph-node2 192.168.100.23  ceph ...

  2. 再次实践 MySQL chart【转】

    学习了 chart 结构和模板的知识后,现在重新实践一次 MySQL chart,相信会有更多收获. chart 安装前的准备 作为准备工作,安装之前需要先清楚 chart 的使用方法.这些信息通常记 ...

  3. 快速为Eclipse配置PyDev插件

    想学习Python,查询网络之后发现PyDev是很好的插件,所以就想为Eclipse配置它.结果在整个配置的过程中出现了各种问题,版本问题,重复问题,反正乱七八糟的,本身安装一次的时间就很长,中间出现 ...

  4. 机器阅读理解(看各类QA模型与花式Attention)(转载)

    目录 简介 经典模型概述 Model 1: Attentive Reader and Impatient Reader Attentive Reader Impatient Reader Model ...

  5. 我的Grunt之旅-序章

    时间:2018-03-05 13:52  事件:安装Grunt 相关网址: grunt官网:https://gruntjs.com node.js下载地址 :https://nodejs.org/en ...

  6. C++中的简单继承

    Father.cpp: #include<iostream> using namespace std; class Father { protected: int width; int h ...

  7. c语言查漏补缺

    getchar:执行getchar()函数时,首先从输入缓存区读取字符,直到输入缓存区为空时才等待从键盘继续输入.scanf()之间不要有printf操作. 逗号表达式 a= (++a,1,2),只取 ...

  8. mysql实现ORACLE的connect by prior父子递归查询

    oracle中有connect by prior ,可以实现父子递归查询.而mysql中没有这种功能,但我们可以变通实现. 比如一个表: Table Name: tb_Tree Id | Parent ...

  9. POJ 1472:Instant Complexity 模拟时间复杂度

    Instant Complexity Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1908   Accepted: 658 ...

  10. Redis集群环境之linux搭建单机版

    Redis解决的问题是:作为一个缓存nosql数据库,能够支持高并发,关系型数据库是存储在磁盘中,通过io读写,而redis是存储在内存中,因此,能够实现高可用,他主要是解决数据库性能瓶颈而产生的. ...