以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  禁止输入中文  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=46073)

--  作者:qianqian1530
--  发布时间:2014/2/16 21:30:00
--  禁止输入中文
 在TextBox里,只能输入 英文,和数字。   英文自动变成大写。
代码怎么写?

--  作者:y2287958
--  发布时间:2014/2/16 21:37:00
--  
http://www.foxtable.com/help/topics/0046.htm
--  作者:逛逛
--  发布时间:2014/2/16 22:15:00
--  

 

TextChanged 事件中

 

Dim myex = New System.Text.RegularExpressions.Regex("^[A-Za-z0-9]+$")
Dim str1 = e.Sender.Text
If myex.IsMatch(str1) Then
    e.Sender.Text = str1.ToUpper
    e.Sender.Error = ""
Else
    e.Sender.Error = "必须为数字或字母"
End If


--  作者:qianqian1530
--  发布时间:2014/2/17 14:26:00
--  回复:(逛逛) TextChanged 事件中 ...
亲, 你这个很实用啊,   还想问一下哈,     要是字符 限制在50个以内, 如果超过的话,提示错误, 这个怎么写啊
--  作者:Bin
--  发布时间:2014/2/17 14:27:00
--  
Dim myex = New System.Text.RegularExpressions.Regex("^[A-Za-z0-9]{0,50}$")
--  作者:荟美绘姿
--  发布时间:2016/3/17 22:51:00
--  
你这个代码当输入字母时光标会移到最前面去了
--  作者:大红袍
--  发布时间:2016/3/17 23:02:00
--  

改一下

 

Dim myex = New System.Text.RegularExpressions.Regex("^[A-Za-z0-9]+$")
Dim str1 = e.Sender.Text
If myex.IsMatch(str1) Then
    Dim idx As Integer = e.sender.SelectionStart
    e.Sender.Text = str1.ToUpper
    e.Sender.Error = ""
    e.Sender.SelectionStart = idx
Else
    e.Sender.Error = "必须为数字或字母"
End If


--  作者:狐狸爸爸
--  发布时间:2016/3/18 7:59:00
--  

也可以用输入掩码:

http://www.foxtable.com/help/topics/3100.htm

 

例如:

>AAAAAAAA

 

表示必须输入8个数字或空格,并自动转换为大写

 

>aaaaaaaa

表示最多输入8个字符或空格,并自动转换为大写