星际luna:在vb中如何控制textbox中只能输入汉字

来源:百度文库 编辑:高考问答 时间:2024/04/23 22:44:17
DannyPotter,真的很感谢你。但是我按照你的提议作了新建了一个工程把代码复制进去改了名字也不行啊。

那就奇怪了!我的可以,你怎么会不可以呢??
-------------
你就这样,新建一个工程,加上一个TextBox控件,
然后将我的代码粘贴到工程代码中,运行看看。
注意:我的代码是Text1的KeyPress事件代码,Text1是TextBox的名称,在TextBox的属性那里可以看到,如果不一样就相应修改一下。
----------------------
汉字的ASCII值都小于0,你可以在KeyPress事件中,判断KeyAscii的值,让它只对输入汉字有效!

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii < 0 Or KeyAscii = 8 Or KeyAscii = 13 Then Exit Sub
KeyAscii = 0
End Sub

拜托,回答也要负责嘛,我还没仔细看,就找到错了,都exit sub 了,它还能给keyascii赋值?

汉字的Ascii码是从-20319到-2050

Private Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii > -2050 Or KeyAscii < -20319) And KeyAscii <> 8 Then '禁止汉字输入,允许使用BackSpace键。
KeyAscii = 0
Beep
End If
End Sub

对keypress我基本没有用过
这里给出一个按照我的想法编制的程序
dim laststore as string
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii<0 Or KeyAscii=8 Or KeyAscii=13 Then
laststore=text1.text
else
text1.text=laststore
end if
End Sub

由于没有用过这些东西,也没有看过资料,所以只是提出一下我的看法,在这里使用keyascii=0没有用。
另外backspace我也不知道
但是使用backspace的方法也是一样的
If KeyAscii<0 Or KeyAscii=8 Or KeyAscii=13 or keyascii=这个是backspace的ascii值 Then
laststore=text1.text
应该是可以的
要获得backspace的ascii值
使用下面的
sub object_keypress(keyascii as integer)
msgbox keyascii
end sub
按一下backspace,应该就知道了吧?
目前没有环境调试,纯粹大脑中想的