在KeyPress中处理,不过不知道怎么判断中文
解决方案 »
- 关于在vb中用AvViewX控件显示autocad文件的问题~~(路径问题)
- 请问VB6中使某个方法同步怎样实现?类似于Java中的synchronized
- 如何自动重启程序。
- 在datagrid中如何获得当前选中行的行号
- 把数据库连接定义为public,放在module中,会有问题吗?
- 有关窗体复用的问题
- 大家好,高分求教文件操作源码
- 如何让msflexgrid做到翻页效果,能够解决,保证给分!
- 请教:如何在VB中实现对硬件端口的操作?
- 请问程序员高手们,如何在VB6中调用.CHM格式的帮助文件?(内空)
- ■$【我今年24了,才开始学编程。我还有指望吗?】$■7.10我会来给分
- 请问在中VB中如何用代码注册ODBC数据项,或是用其他方式解决,我不想每安装一次就配一次ODBC
另外你可以将textbox的IMEmode设成Disable,就不能打中文了
它进行判断就得对整个text1.text按位判断 假如判断无效字符也有一大堆"=","-","!","?"
数字("0"-"9")等 谁有更好的办法请指点我一下!谢谢!!
不要用lostFocus事件,要用Validate事件。否则,用户会很不舒服。
你想,你用lostFocus,如果用户输入了无效字符,但用户想退出,因为一旦lostFocus你就要判断是否有效,然后报错,是不是很烦?
For i = 0 to Len(Text1.Text)
intVar = Asc(UCase(Mid(Text1.Text,i,1)))
If (intVar >= 65 and intVar <=90) or intVar <0 Then
'ok!
else
msgbox "无效字符"
End If
Next
我曾经在combo中分时试用这两个事件调用同一个程序 感觉功能一样
Private Sub Text3_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 8
Case 43
Case 45
Case 48 To 57
Case 65 To 90
Case 97 To 122
Case 13
Text4.SetFocus
Case Else
If (KeyAscii And &HFF00) <> 0 Then
Text3.Text = Text3.Text
Else
KeyAscii = 0
msgbox "无效字符!",,"提示信息"
End If
End Select
End Sub
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Byte, ByVal Source As String, ByVal Length As Long)
'该函数判断传入字符是否是GBK汉字库中的字符
'如果是则返回True,否则返回False
Private Function IS_GBK_HZ(ByVal sHZ As String) As Boolean
Dim aHZ(1) As Byte
sHZ = Left(sHZ, 1)
If Len(sHZ) > 0 Then
CopyMemory aHZ(0), sHZ, 2
IS_GBK_HZ = (aHZ(0) >= &H81) And (aHZ(0) < &HFE) And (aHZ(1) >= &H40) And (aHZ(1) < &HFF)
End If
End Function