Foxtable(狐表)用户栏目专家坐堂 → 限制中文输入


  共有3943人关注过本帖树形打印复制链接

主题:限制中文输入

帅哥哟,离线,有人找我吗?
xvkewen
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:593 积分:5538 威望:0 精华:0 注册:2012/6/29 19:11:00
限制中文输入  发帖心情 Post By:2013/12/15 15:45:00 [只看该作者]

我想SRS列里只能输入字母,数字和符号"-",当我直接输入中文的时候可以得到提示,但当我中英文混输的时候,却没有提示且被正常录入了,为什么?validateEdit事件的代码如下:

If e.Col.name = "SRS_No" Then
    Dim s2 As String = e.text
    If s2 <> "" Then
        If Asc(s2) > 47 And Asc(s2) < 58 OrElse Asc(s2) > 64 And Asc(s2) < 91 OrElse Asc(s2) > 96 And Asc(s2) < 123 OrElse Asc(s2) = 45 Then
            e.Cancel = False
        Else
            msgbox("您输入的办单号含有非法字符,请重新输入!" & Chr(13) & Chr(10) & "办单号只能包含字母,数字和符号""-""")
            e.Cancel = True
        End If
    End If
End If

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/12/15 16:11:00 [只看该作者]

做文本文件数据对齐的时候,我用的判断是:

If  Asc(s2) < 0 Then    '汉字或全角字符。

 

End If


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/15 19:41:00 [只看该作者]

 方法一:把代码设置到datacolchanged里,相应的改一下代码便可。

 方法二:设置列的掩码。http://www.foxtable.com/help/topics/0047.htm

 回到顶部
帅哥哟,离线,有人找我吗?
xvkewen
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:593 积分:5538 威望:0 精华:0 注册:2012/6/29 19:11:00
  发帖心情 Post By:2013/12/15 20:21:00 [只看该作者]

我是for each对输入的字符逐个判断,是不是笨了点?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/15 20:45:00 [只看该作者]

 validateEdit 或者 datacolchanged,就是要fox each去一个一个判断的。

 你或者可以用正则表达式去判断。

 如果每输入一个,就检测一下的话,建议用keypressEdit去判断。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/12/15 20:49:00 [只看该作者]

 正则的用法

Dim data As String = "13AA343"
Dim reg As new System.Text.RegularExpressions.Regex("^[0-9a-zA-Z]+$")
Dim result As Boolean = reg.IsMatch(data)
msgbox(result)

 回到顶部