【实例说明】

 可以在TextBox控件中轻松地输入文本信息,输入的文本信息可以包括字母、数字、汉字等。

 如果需要用户在TextBox控件中填写年龄信息,那么年龄信息应当只允许数字,怎么限制用户输入其他信息呢?

 本实例中将会演如何只允许用户在TextBox控件中输入数字,当按下其他非数字按钮时便会提示:

 这个例子很简单的,限制输入,直接在KeyPress事件里验证就行了。下面说了两种方式:

【关键技术】
 本实例重点在于向读者介绍怎样通过Char结构的isDigit方法判断用户在TextBox控件中输入的字符是否为数字,以及使用按键对应的Ascii值判断是否是指定范围的按键等等。下面对本实例用到的关键技术进行详细的讲解。

 TextBox控件的KeyPress事件包含两个参数,即sender事件源和包含事件数据的e,

 通过e的KeyChar属性可以获取用户按下键盘的按键,通过e的Handler属性可以设置是否处理过用户按键的事件。
 通过e.KeyChar转成int的值可以获取到当前用户按下键盘的按键对应的ASCII值。

 (1)KeyChar属性
   该属性用于获取或设置按下键对应的字符,语法格式如下:

 public char KeyChar{ get; set; }

   参数说明
   属性值:Char结构,饿到按下键对应的字符。
 (2)Handled属性
   该属性用来获取或设置一个值,该值只是是否处理过System.Windows.Forms.Control.KeyPress事件,语法格式如下:

 public bool Handled{ get; set; }

   参数说明
   属性值:布尔类型,只是是否处理过KeyPress事件。
   使用Char结构的isDigit方法可以判断指定字符是否为十进制数字,下面对其进行详细说明。
 (3)isDigit方法
   该方法只是某个字符是否属于十进制数字类别,语法格式如下:

 public static bool IsDigit(char c)

   参数说明
   c:一个字符
   返回值:返回布尔值,如果字符c是是兼职数字则为true,否则为false。

说明:通过KeyPressEventArgs的Handled设置为true,可以取消KeyPress事件,这样可以取消用户在TextBox按键的值。

【设计过程】
 (1)打开Visual Studio,新建WinForm应用程序,命名为OnlyDigit。
 (2)更改默认窗体Form1的Name属性为FrmMain,向窗体中添加一个TextBox文本框控件,用于演示只允许向文本框中输入数字。
 (3)程序的主要代码如下:

 // 在当前输入框中按下并弹起按键的事件
 private void txt_Input_KeyPress(object sender, KeyPressEventArgs e)
 {
      if (!char.IsDigit(e.KeyChar))   // 如果当前输入的不是数字
      {
           MessageBox.Show("请输入数字!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);   // 给出错误提示
           e.Handled = true;   // 取消当前操作,即取消在控件中现实该字符的操作
      }
 }

 上面这段代码表示,使用char的IsDigit方法判断传进来的char字符是不是一个十进制的数字、

 当你运行这段代码会发现:我们按下非数字的字母或符号的时候,确实实现了这个效果、
 但是、当你按下回车、退格、Ctrl等等这些按键的时候、同样认为是非数字被拦截了、

 所以、这时就需要使用ASCII值判断数字范围了,因此,另一种写法:

 // 在当前输入框中按下并弹起按键的事件
 private void txt_Input_KeyPress(object sender, KeyPressEventArgs e)
 {
      int keyAsciiValue = Convert.ToInt32(e.KeyChar); // 获取当前按下的按键对应的ASCII值

      // 如果当前ASCII值范围不在48-57之间、也就是0-9对应的ASCII值之间
      // 或者ASCII的值不是8[退格键]或13[回车键]时
       && keyAsciiValue <= ) || (keyAsciiValue ==  || keyAsciiValue == ))))
      {   //如果上面的验证结果是false
           MessageBox.Show("请输入数字!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);   // 给出错误提示
           e.Handled = true;
      }

      //if (!char.IsDigit(e.KeyChar))   // 如果当前输入的不是数字
      //{
       //    MessageBox.Show("请输入数字!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);     // 给出错误提示
       //    e.Handled = true;   // 取消当前操作,即取消在控件中现实该字符的操作
      //}
 }

 我这里不能插附件,要源码的话留言吧,呵呵。

【来自:[LonelyShadow 博客] http://www.cnblogs.com/LonelyShadow

只允许输入数字的TextBox控件的更多相关文章

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

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

  2. C# TextBox中只允许输入数字的方法

    1.在Winform(C#)中要实现限制Textbox只能输入数字,一般的做法就是在按键事件中处理, 判断keychar的值.限制只能输入数字,小数点,Backspace,del这几个键.数字0-9所 ...

  3. [摘]ASP.Net标准控件(TextBox控件)

    TextBox控件 TextBox控件又称文本框控件,为用户提供输入文本的功能. 1.属性 TextBox控件的常用属性及说明如表1所示. 表1 TextBox控件常用属性及说明 属    性 说   ...

  4. ASP.Net TextBox控件只允许输入数字

    原文:ASP.Net TextBox控件只允许输入数字 1.1.在Asp.Net TextBox 控件的 OnKeyPress 事件中指定输入键盘码必须为数字: <asp:TextBox ID= ...

  5. c#textBox控件限制只允许输入数字及小数点,是否为空

    c#textBox控件限制只允许输入数字及小数点 转载 //判断按键是不是要输入的类型. if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) ...

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

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

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

    一. textBox控件实现只允许为数字和小数点 如下图所示,在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. Android仿腾讯应用宝 应用市场,下载界面, 有了进展button

    近期应用市场做,需要使用.下载与进度显示button,因此,要寻找其他大神做,直接用于改善.和很多无用的切出.在改进共享后. 再一次改变.当下载进度时,有进步.进度显示自己主动运行文本.并设置背景为灰 ...

  2. android学习日记24--Android 菜单开发

    菜单是任何应用程序必不可少的一项.按下Menu键或者长按某个View就会弹出相应菜单,当然前提是应用程序有实现菜单功能. Android平台下的菜单有:Options Menu(选项菜单).Subme ...

  3. 使用air进行移动app开发常见功能和问题(一)

    1.  获取最近联系人 思路:侦听Geolocation的update事件,获取经度和纬度信息,再把坐标信息上传至服务器,服务器比较坐标信息算出距离,返回最近位置的若干个人. update时间在2种情 ...

  4. careercup-排序和查找 11.7

    11.7 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.处于实际和美观的考虑,在上面的人要比下面的人矮一点.轻一点.已知马戏团每个人的高度和重量,请编写代码计算叠罗汉最多能叠几个人. ...

  5. 一、 Socket之UDP异步传输文件

    用SCOKET 发送文件是一个不太好处理的问题,网上的例子也都是很简单的,我准备写一个比较完善的例子,这个就算是开始吧,以后的都会在这个例子的基础上进行修改,准备实现多线程传输.断点传输和文件传输的完 ...

  6. 介绍一些实用的IOS手势识别库 (COCOS2D)

    http://www.supersuraccoon-cocos2d.com/zh/2012/11/14/introduction-to-some-great-ios-gesture-recogniti ...

  7. Content-type 对照表

    Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式.什么编码读取这个文件,比如用PHP输出图片文件.JSON数 ...

  8. 五个在XML文档中预定义好的实体

    下面是五个在XML文档中预定义好的实体: < < 小于号 > > 大于号 & & 和 &apos; ' 单引号 " " 双引号 实体 ...

  9. QQ粘性效果

    演示如下 QQ粘性效果.zip

  10. 什么是CS和BS结构,两种结构的区别

    什么是CS和BS结构,两种结构的区别 什么是C/S和B/S结构?         C/S又称Client/Server或客户/服务器模式.服务器通常采用高性能的PC.工作站或小型机,并采用大型数据库系 ...