VB.NET使文本框只能输入数字
发布时间:2020-12-17 00:24:14 所属栏目:大数据 来源:网络整理
导读:编制计算类程序时文本框一般都用于输入数字数据,此时可以通过以下步骤来确保用户输入数据的正确性: 首先添加好文本框控件TextBox后把属性IMEMode的值改成Disable,这样在该文本框中就不能使用中文输入法了。然后对 KeyPress 文本框的KeyPress事件添加以下
编制计算类程序时文本框一般都用于输入数字数据,此时可以通过以下步骤来确保用户输入数据的正确性:首先添加好文本框控件TextBox后把属性IMEMode的值改成Disable,这样在该文本框中就不能使用中文输入法了。然后对 KeyPress文本框的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事件已经被处理过了,文本框的内容也就不会发生变化了。从以上程序中不难看出,此时文本框只能接受数字和退格键,也就是说这个文本框是用来输入整数的。 小数点如果文本需要输入小数的话,就要能够输入小数点".",而且小数点只能输入一次,此时可以将上面的函数改为下面的格式: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,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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- the probability of returning one element should be val
- perl – 可用的Storable模块是什么?
- PPI协议详解 ppi通讯协议 ppi通信协议 vb与ppi协议通讯
- perl – 我不应该使用Storable或YAML序列化我的(Moose)对象
- 部署大数据处理服务:详解OpenStack Sahara架构
- Installing vSphere SDK for Perl
- 单元测试 – 如何为单元测试创??建虚拟数据?
- Lua学习笔记四——协同程序coroutine
- 用Delphi实现快闪窗体信息提示
- [bigdata-079] centos创建用户和创建用户组