Foxtable(狐表)用户栏目专家坐堂 → 身份证号码输入


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

主题:身份证号码输入

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


加好友 发短信
等级:三尾狐 帖子:788 积分:6297 威望:0 精华:0 注册:2012/6/11 17:21:00
身份证号码输入  发帖心情 Post By:2018/5/9 10:57:00 [只看该作者]

TextBox(文本框)KeyPress里,前17位只能输入数值,第8位可以输入数值或大写字母。请问老师可以做到吗?
If Char.IsNumber(e.KeyChar) OrElse Char.IsUpper(e.KeyChar) Then

Else
    e.Cancel  = True
End If
[此贴子已经被作者于2018/5/9 10:57:32编辑过]

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


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

可以用掩码

 

http://www.foxtable.com/webhelp/scr/3100.htm

 

或者代码

 

If Char.IsNumber(e.KeyChar) OrElse Char.IsUpper(e.KeyChar) Then
    If e.sender.Text.Length <= 17 andAlso Char.IsNumber(e.KeyChar) = false Then

        e.cancel = true

    End If

Else
    e.Cancel  = True
End If

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


加好友 发短信
等级:三尾狐 帖子:788 积分:6297 威望:0 精华:0 注册:2012/6/11 17:21:00
  发帖心情 Post By:2018/5/9 11:32:00 [只看该作者]

这样前17位值可以输,第18位不能输字母,如果第18位输数值,就删除不了。
[此贴子已经被作者于2018/5/9 11:32:48编辑过]

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


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

If Char.IsNumber(e.KeyChar) Then
    If e.sender.Text.Length > 17 Then
        e.cancel = True
    End If
ElseIf e.keychar = chr(keys.back) Then

ElseIf Char.IsUpper(e.keychar) Then
    If e.sender.Text.Length < 17 Then
        e.cancel = True
    End If
Else
    e.Cancel  = True
End If


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


加好友 发短信
等级:三尾狐 帖子:788 积分:6297 威望:0 精华:0 注册:2012/6/11 17:21:00
  发帖心情 Post By:2018/5/9 11:52:00 [只看该作者]

谢谢!老师

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


加好友 发短信
等级:三尾狐 帖子:788 积分:6297 威望:0 精华:0 注册:2012/6/11 17:21:00
  发帖心情 Post By:2018/5/9 13:28:00 [只看该作者]

老师,还有学籍输入框,字符数19位,第1位是“G”或“L”,中间17位数值,第19位是数值或“X”,下面代码最后如果是数值可以,是“X”就不行了,请老师指教,谢谢!
If e.keychar = "G" Or e.keychar = "L" OrElse Char.IsNumber(e.KeyChar) Then
    If e.sender.Text.Length > 18 Then
        e.cancel = True
    End If
ElseIf e.keychar = chr(keys.back) Then
ElseIf e.keychar = "X" Then
    If e.sender.Text.Length < 18 Then
        e.cancel = True
    End If
Else
    e.Cancel  = True
End If
[此贴子已经被作者于2018/5/9 13:31:15编辑过]

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


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

If  Char.IsNumber(e.KeyChar) Then
    If e.sender.text.length < 1 OrElse e.sender.Text.Length > 18 Then
        e.cancel = True
    End If
ElseIf e.keychar = "G" OrElse e.keychar = "L" Then
    If e.sender.Text.Length >= 1 Then
        e.cancel = True
    End If
ElseIf e.keychar = chr(keys.back) Then
ElseIf e.keychar = "X" Then
    If e.sender.Text.Length < 18 OrElse e.sender.text.length > 18 Then
        e.cancel = True
    End If
Else
    e.Cancel  = True
End If

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


加好友 发短信
等级:三尾狐 帖子:788 积分:6297 威望:0 精华:0 注册:2012/6/11 17:21:00
  发帖心情 Post By:2018/5/10 9:17:00 [只看该作者]

谢谢

 回到顶部