关于VB文本框设置的问题(谢谢)

lf5486 2003-05-11 03:43:36
本人要编一个文本框的功能如下:1。只能输入数字键 2。输入的数字在0到100之间,超出报错。
另外,怎么才能限制在文本框里输入的字符,只能是中文汉字和英文字母?
请各位高手赐教。THANKS!!




...全文
59 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Maconel 2003-05-12
第二个问题好说啊,在第一个问题解决的基础上,只要限制文本框的最大长度是2就可以了
好象是maxlen=2吧,在属性栏中就有
回复
TimLee✿ 2003-05-12
ASCII太麻烦,像我那个程序是一劳永逸~哈哈!天才的我太天才啦!哈哈!!~~~
回复
mahongliang1983 2003-05-11
应该很好实现的~
用ascii码来做
回复
lanWay 2003-05-11
select case keyascii
case 13,27,8'enter,esc,del
case else
select case chr(keyascii)
case 0 to 100
case else
keyascii=0
msgbox "提示"
end select
end select
回复
TimLee✿ 2003-05-11
Dim Mytext As String

Function TestText(KeyIn As Integer, ListString As String, EditBasp As Boolean) As Integer
Dim TestDATList As String '定义限制字符表变量
Dim KeyOut As Integer '返回值变量
If EditBasp = True Then '测试BACKSPACE键是否有效
TestDATList = UCase(ListString) & Chr(8) '得到含BACKSPACE键字符的大写表
Else
TestDATList = UCase(ListString) '得到无BACKSPACE键字符的大写表
End If
If InStr(1, TestDATList, UCase(Chr(KeyIn)), 1) > 0 Then '键值是否在表中
KeyOut = KeyIn '是则附键值
Else
KeyOut = 0 '否则键值无效
End If
TestText = KeyOut '返回结果
End Function

Private Sub Form_Load()
Dim i As Integer
Mytext = "0123456789"
Mytext = Mytext + "你允许输入的其他字符!!"
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = TestText(KeyAscii, Mytext, True) 'Text1只接受mytext规定的字符。
End Sub


我在 http://expert.csdn.net/Expert/topic/1768/1768883.xml?temp=.7372095

还发了一个和这个程序相似的(其实是一样的)程序,用来禁止指定字符的输入,有兴趣可以去看看~~

我的程序可是在VB里通过测试后才拿出来的。绝对好用!^_^像作广告~~
回复
danielinbiti 2003-05-11
Dim t As String

Private Sub Command1_Click()
p = 2#
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
Else
t = t & Chr(KeyAscii)
End If
If Int(t) > 100 Then MsgBox "error": KeyAscii = 0
End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)
'中文输入如果我没记错,中文的keyascii<0
If KeyAscii >0 Then KeyAscii = 0
End Sub

Private Sub Text3_KeyPress(KeyAscii As Integer)
'输入英文
If Asc(UCase(Chr(KeyAscii))) < 65 Or Asc(UCase(Chr(KeyAscii))) > 90 Then KeyAscii = 0
End SuB
回复
danielinbiti 2003-05-11
Dim t As String
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
Else
t = t & Chr(KeyAscii)
End If
If Int(t) > 100 Then MsgBox "error": KeyAscii = 0
End Sub
回复
dalisailor 2003-05-11
先回答你第一个问题,我写一段示例代码给你吧,假设这个文本框是text1
Private Sub text1_Change()
Dim intChar As Integer
'取text1的最右边(即最新输入的一个字符),转换成ASCII码存放到intChar里
intChar=Asc(Right(text1.text,1))
If intChar<48 Or intchar>57 Then '0和9的ASCII值分别为48和57
'提示输入的不是数字键,错误处理你就自己写吧
Else If Val(text1.text)>=0 Or Val(text1.text)<=100 Then
'提示输入的数字在0至100之间,错误处理你也自己定吧。
End If
End Sub

再回答你第二个问题,其实也是一样的,在text1_Change()里写一段代码取最右边的第一个字符,返回其ASCII值,不在48至57之间就不是数字了,不过回为有汉字,所以ASC函数要换一下,换成ASCW

么样?Any question?
回复
xinxuelfr 2003-05-11
可以根据键位的ascii码值来判断,例如KeyPress事件,要判断在0和100之间可以将文本框里的字符转换成数值判断大小。
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7517

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2003-05-11 03:43
社区公告
暂无公告