当前位置:  编程技术>.net/c#/asp.net

vb.net如何限制文本框只能输入数字?

    来源: 互联网  发布时间:2014-08-30

    本文导语:  本节内容: vb.net限制文本框只能输入数字 首先,添加好文本框控件TextBox,然后,把属性IMEMode的值改成Disable,这样文本框中就不能使用中文输入法了。 然后,对文本框的KeyPress事件添加:   Private Sub TextBox1_KeyPress(ByVal sender As...

本节内容:
vb.net限制文本框只能输入数字

首先,添加好文本框控件TextBox,然后,把属性IMEMode的值改成Disable,这样文本框中就不能使用中文输入法了。
然后,对文本框的KeyPress事件添加:
 

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Textbox1.KeyPress
     If Char.IsDigit(e.KeyChar) Or e.KeyChar = Chr(8) Then
         e.Handled = False
     Else
         e.Handled = True
     End If
End Sub

其中e.KeyChar是键盘输入的键对应的字符,IsDigit函数可以判断是否为0到9的数字,Chr(8)为退格键,当e.Handled为True时,程序认为该KeyPress事件已经被处理过了,文本框的内容也就不会发生变化了。(www. 整理)

从以上程序中不难看出,此时文本框只能接受数字和退格键,即这个文本框是用来输入整数的。

如果文本需要输入小数,就要能够输入小数点".",而且小数点只能输入一次,此时可以将上面的函数改为下面的格式:
 

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Textbox1.KeyPress
     If Char.IsDigit(e.KeyChar) or e.KeyChar = Chr(8) or e.KeyChar = "." Then
         If e.KeyChar = "." And InStr(TextBox1.Text, ".") > 0 Then
             e.Handled = True
         Else
             e.Handled = False
         End If
     Else
         e.Handled = True
     End If
End Sub

其中函数InStr返回指定字符在字符串中的位置,当字符串中不含此字符时,返回一个负数。这时文本框可以用来输入正整数及小数。

如果文本需要输入负数的话,就要能够输入负号"-",而且只能是文本框输入的第一个字符,此时又可以将上面的函数改为下面的格式:
 

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Textbox1.KeyPress
     If Char.IsDigit(e.KeyChar) Or e.KeyChar = "." Or e.KeyChar = Chr(8) Then
         If e.KeyChar = "." And InStr(TextBox1.Text, ".") > 0 Then
             e.Handled = True
          Else
              e.Handled = False
          End If
      ElseIf e.KeyChar = "-" And TextBox1.Text = "" Then
          e.Handled = False
      Else
          e.Handled = True
      End If
End Sub

这时文本框可以用来输入正的或负的整数及小数。

当有多个文本框需要做输入限制时,可以在以上代码Handles后面加上多个文本框的KeyPress事件,各事件之间用逗号隔开,例如
 

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Textbox1.KeyPress,Textbox2.KeyPress,Textbox3.KeyPress
 

对于要判断文本框内容的函数,就要把代码进行修改,使其能够同时处理多个文本框,也就是把上面后两段程序中的TextBox1.Text改为CType(sender, TextBox).Text,这样一来就能够对号入座了,比如上面能够输入负号的代码就可以改成:
 

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Textbox1.KeyPress,Textbox2.KeyPress,Textbox3.KeyPress
      If Char.IsDigit(e.KeyChar) Or e.KeyChar = "." Or e.KeyChar = Chr(8) Then
           If e.KeyChar = "." And InStr(CType(sender, TextBox).Text, ".") > 0 Then
                e.Handled = True
           Else
                e.Handled = False
           End If
      ElseIf e.KeyChar = "-" And CType(sender, TextBox).Text = "" Then
           e.Handled = False
      Else
           e.Handled = True
      End If
End Sub

以上就是vb.net限制文本框只能输入数字的实例讲解,希望对大家有所帮助。


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • asp.net解决上传4M文件限制
  • 基于.net中突破每客户端两个http连接限制的详细介绍
  • net-snmp中struct variable成员magic大小限制的问题
  • .Net 如何限制用户登录的方法
  • asp.net Cookie的限制
  • java命名空间javax.net类socketfactory的类成员方法: createsocket定义及介绍
  • .NET版的ExtJS库 Ext.Net
  • java命名空间java.net类datagramsocket的类成员方法: disconnect定义及介绍
  • node.js的.net扩展 node.net
  • java命名空间java.net类datagramsocket的类成员方法: close定义及介绍
  • 为什么输http://www.china-java.net,会自动改为http://www.china-java.net:8081?
  • java命名空间java.net接口cookiestore的类成员方法: get定义及介绍
  • 各位之不知道net-snmp是否收费?我的产品中用到了net-snmp lib是否需要向什么单位或者组织付费?
  • java命名空间java.net类socket的类成员方法: isbound定义及介绍
  • 【人才】有没有人会用VC6.0/VS2003.NET/VS2005.NET写WINDOWS下的驱动程序呀。
  • java命名空间java.net类datagrampacket的类成员方法: getsocketaddress定义及介绍
  • Java.NET or J#.NET is coming!
  • java命名空间java.net类multicastsocket的类成员方法: getinterface定义及介绍
  • make menuconfig时出错:net/Kconfig:221:can't open file "net/wireless/Kconfig"
  • java命名空间java.net枚举proxy.type的类成员方法: http定义及介绍
  • 用过net-snmp(ucd-snmp)的大侠用过net-snmp(ucd-snmp)请进(来者有分)
  • java命名空间java.net类urisyntaxexception的类成员方法: getreason定义及介绍
  • 常用.NET工具(包括.NET可再发行包2.0)下载
  • java命名空间java.net类datagramsocketimpl的类成员方法: getlocalport定义及介绍
  • Ja.Net
  • java命名空间java.net类httpretryexception的类成员方法: getreason定义及介绍
  • asp.net判断数据库表是否存在 asp.net修改表名的方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3