自制VB数值框
日期:2007年6月29日 作者: 查看:[大字体 中字体 小字体]-
自制VB数值框
■ 段云辉 (duanyunhui@21cn.com)
--------------------------------------------------------------------------------
凡用过VB的读者都知道,VB中有一个文本框(TextBox控件),它可显示设计时程序员输入的或运行时用户输入的或在代码中赋予的信息(包括字母、数字和其他符号)。但在很多场合我们需要的仅仅是数值数据,这时在TextBox中无意输入的非数值数据就会给我们带来不便,因此需将非数值信息过滤掉。为实现这一目标,我们设计一个只能输入数值的“数值框”。
初步设想与比较
设计时,我们通常采用IsNumeric函数来判断文本框的信息是不是数值,但是这个函数有一些不足:若在TextBox控件的Change事件过程中用IsNumeric函数来判断,在空文本框中输入“+”、“-”、“.”(正负号、小数点)时,它会将这些符号认为是非数值从而加以拒绝,而逗号、分节号处于非首位时,无论多少个均认为是合法数值,这显然不符合实际,在参加数学运算时也会出错;若将函数放在TextBox控件的Validate事件(VB6新增)过程中,则多少有点“事后诸葛亮”之嫌,因为该事件是在焦点转换到另一个控件之前才发生。
当然,我们还可以在TextBox控件的KeyPress事件过程中进行过滤,这时,需对“+”、“-”、“.”出现的个数及位置加以控制,对其他非数字符号加以拒绝。但这个方法也有一个致命弱点,就是无法控制从剪贴板中粘贴来的数据。
实现步骤和方法
为了使进入TextBox中的数据全为“数值”,我们综合上述前后两种方法,即可达到我们的目的:
1.新建一标准EXE工程。
2. 在窗体Form1的适当位置放置一个适当大小的文本框(Text1)。
3.在窗体Form1的代码窗口Text1_KeyPress过程中输入下列代码:
Private Sub Text1_KeyPress(KeyAscii As Integer)
’相关字符的ASCII码
’字符: (退格键) +(正号),(逗号) -(负号)
’Ascii: 8 43 44 45
’字符: .(小数点) /(斜杠) 0~9
’ Ascii: 46 47 48~57
’退格键有效
If KeyAscii = 8 Then Exit Sub
’正号(+)、负号(-)、小数点及数字以外的字符视为无效键入
If KeyAscii < Asc(“+”) Or KeyAscii = Asc(“,”) Or KeyAscii = Asc(“/”) Or KeyAscii > Asc(“9”) Then
KeyAscii = 0
Exit Sub
End If
’正负号(未被选取)前不能再键入字符
If Left(Text1.Text, 1) = “+” Or Left(Text1.Text, 1) = “-” Then
If Text1.SelStart=0 Then
If InStr(Text1.SelText, “+”) = 0 And InStr(Text1.SelText, “-”) = 0 Then
KeyAscii = 0
Exit Sub
End If
End If
End If
’键入小数点
If KeyAscii = Asc(“.”) Then
’原TextBox中已有小数点
If InStr(Text1.Text, “.”) > 0 Then
’原TextBox中的小数点未被选取,作为无效处理(不能有两个小数点) - [1] [2] [3] [4] 下一页
-
- 自制VB数值框 相关文章:
- ·巧用名称框选择过宽的Excel单元格区域
- ·用JavaScript刷新框架子页面的方法
- ·简易边框制作Photoshop教程
- ·JavaScript教程:框架的概念及如何访问
- ·网页设计中文本输入框的参数说明
- ·网页设计中文本输入框的一些参数说明
- ·Photoshop轻松制作照片艺术边框效果实例2则
- ·HTML:对话框插件thickbox使用技巧
- ·Photoshop为美图制作小巧精致水晶方格边框
- ·避免在网站设计中使用框架页
- 自制VB数值框 相关软件
- ·《花之艳叶之韵》《逃离画框的美》
- ·某框剪工程质量监理细则(一)
- ·SOX 404实施经典资料 COSO-ERM一体化框架
- ·配置Windows文件打开对话框中的“位置栏”中显示的项目列表
- ·系统提供的日期输入框
- ·CheckBox锁定输入框
- ·输入框不保留历吏记录
- ·带Table框的下拉式菜单
- ·实用推荐-输入框的聚焦效果
- ·自动分割页面生成框架程序
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
下一篇:字体改变事件
精品推荐
热点TOP10
- ·VB表格控件总览与例程分析
- ·VB+Access设计图书管理系统
- ·用VB6.0制作画图板
- ·给VB控件PictureBox加滚动条的方法
- ·VB编程之路-如何让界面美化
- ·用MsFlexGrid控件显示数据库中的记录
- ·如何用VB程序来播放WAV文件
- ·CreatePolygonRgn
- ·用VB实现井字游戏
- ·利用硬盘序列号计算软件注册码
- ·串口通讯及其在VB平台下的实现
- ·VB中用Multimedia MCI控件开发多媒体应用
- ·在VFP、VB应用程序中激活鼠标功能
- ·VB.NET实现窗体图标最小化到状态栏
- ·VB 9新特性—保留与舍去了什么?
- ·VB基础学习:编码规范
- ·VB设计有语音报时和报警功能的闹钟
- ·用VB6分离出文本框的单词
- ·用VB实现Win2000用户限时登录
- ·VB应用程序中实现“查找和替换”功能
特别推荐
- ·VB表格控件总览与例程分析
- ·用VB6.0制作画图板
- ·VB打造超酷个性化菜单(六)
- ·MSHFlexGrid 控件的应用
- ·Visual Basic 控件简介
- ·利用硬盘序列号计算软件注册码
- ·计算机等级考试二级VB常用算法:排序
- ·用diskid.dll和disk32.dll获得硬盘序列号
- ·VB6中使用Winsock穿越各种代理的实现
- ·在VFP、VB应用程序中激活鼠标功能
- ·vb基础(打印问题)
- ·想用就用,VB基础代码
- ·运用多媒体WAV文件格式二三例
- ·VB基础学习:编码规范
- ·VB实现程序的隐形
- ·使用.NET Framework从VB6中访问事件日志
- ·怎样把VC++代码转换成VB代码
- ·如何用VB程序来播放WAV文件
- ·VB 实用函数集
- ·用VB制作RM压缩软件
