如何限制输入框只能输入汉子?vb6
如何限制输入框只能输入汉子?vb6
[解决办法]
vb怎么辨别输入的为中文
[解决办法]
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii > 0 Then KeyAscii = 0
End Sub
[解决办法]
依我看,这个容易啊,监察IMEStatus的值,如果值是0,那就不是中文。
IMEStatus 函数
返回一个 Integer,用来指定当前 Microsoft Windows 的输入法 (IME) 方式;只对东亚区版本有效。
语法
IMEStatus
返回值
下面是日本国别的返回值:
常数 值 描述
vbIMEModeNoControl 0 不控制IME(缺省)
vbIMEModeOn 1 打开 IME
vbIMEModeOff 2 关闭 IME
vbIMEModeDisable 3 IME 无效
vbIMEModeHiragana 4 完整宽度 Hiragana 模式
vbIMEModeKatakana 5 完整宽度 Katakana 片假名模式
vbIMEModeKatakanaHalf mode 6 半宽 Katakana 模式
vbIMEModeAlphaFull mode 7 完整宽度 Alphanumeric 模式
vbIMEModeAlpha mode 8 半宽 Alphanumeric 模式
下面是韩国地区的返回值:
常数 值 描述
vbIMEModeAlphaFull 7 完整宽度 Alphanumeric 模式
vbIMEModeAlpha 8 半宽 Alphanumeric 模式
vbIMEModeHangulFull 9 完整宽度 Hangul 模式
vbIMEModeHangul 10 半宽 Hangul 模式
下面是中文地区的返回值:
常数 值 描述
vbIMEModeNoControl 0 不控制IME(缺省)
vbIMEModeOn 1 打开 IME
vbIMEModeOff 2 关闭 IME
[解决办法]
也就说当文本框获得焦点时,九江IMEStatus设置为1,即可。
[解决办法]
的确,2 楼的代码只能限制输入的是东方文字。日文和韩文都是可以通过的。
但对于楼主来说,他的应用应该是限定了输入仅为中文和西文。
还有,目前代码放行的不仅仅是“汉字”,中文字库中的标点符号也是可以通过的。要过滤这些字符,需要附加的代码。
[解决办法]
汉字和全角标点不是混排的.
通过编码可以区分.
比如都转换为unicode代码后,高字节是0的,都不是汉字.
2010-203b是广义标点,全角标点吧?
3041-30FE是平假名和片假名
3447-FA29是汉字
这样是有定义的,笨办法就是去word里面插入符号.