终只搞出一个文本框只能输入数字的玩意了。
vb.net吧
全部回复
仅看楼主
level 8
chichu007 楼主
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
For i = 1 To Len(TextBox1.Text)
If IsNumeric(Strings.Left(TextBox1.Text, i)) = True Then '函数判断只能输入数字 否则清空
Debug.Print("数字")
Label6.Visible = False
Else
Debug.Print("非数字")
TextBox1.Text = ""
Label6.Visible = True
End If
Next
End Sub
度了好多娘都发现要么可以复制粘贴,要么可以快捷键。。。
此法你的文本框再也搞不进数字之外的东西了。
2014年04月07日 09点04分 1
level 8
chichu007 楼主
Strings.Left(TextBox1.Text, i)还要搞成 ,,,他奶奶的。。。。Strings.Mid(TextBox1.Text, i, 1)
2014年04月07日 10点04分 2
level 2
处理文本框的KeyDown事件处理程序,Select Case e.KeyCode一下,Case KeyCode.Num0 To Num9:空白,换行Case Else:e.SurpressKey(这个名称的写法有点忘了)=True就行。
2014年05月06日 16点05分 3
这样一来保证你只能输入数字,连左右等功能性按键都失效了。
2014年05月06日 17点05分
别人复制粘贴的时候,还有鼠标右键粘贴。。。。
2014年05月07日 02点05分
回复 chichu007 :可以反过来,处理A TO Z的SurppressKey=True,其余空白。这样就不影响其他功能了,只屏蔽了任何英文字母键。不知道能不能输入汉字。
2014年05月07日 07点05分
level 11
textbox1.text=
regex.replace(textbox1.text,"[^0-9]","")
这个行不行[滑稽]
2014年05月07日 02点05分 4
看起来比我的高端很多
2014年05月07日 02点05分
回复 chichu007 :[勉强]运用了正则表达式而已,最近才学的,不过有个缺点,就是如果输入非数字,那个键入位置会跳到开头,很不方便
2014年05月07日 02点05分
文字多的时候会很卡的。
2014年05月08日 14点05分
level 11
看不下去了
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress, TextBox2.KeyPress, TextBox3.KeyPress, TextBox4.KeyPress
If Char.IsDigit(e.KeyChar) Or e.KeyChar = Chr(8) Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
2014年05月07日 14点05分 5
正解
2014年05月08日 14点05分
把Or改成OrElse速度更快
2014年05月08日 14点05分
回复 Nukepayload2 :这也行正解,鼠标粘贴汉字进去不没得玩了。效率高也不能作为bug的理由啊[惊讶]
2014年05月08日 15点05分
chichu007: KeyPress看成TextInput了。。。 --来自可以用水果刀发帖的 诺基亚 Lumia 625H
2014年05月08日 15点05分
level 13
有没有不输入中文的
2014年05月08日 04点05分 7
用unicode检查最后输入字符的长度
2014年05月08日 07点05分
level 8
chichu007 楼主
更新下只能输入字母的代码,keypress 或者 keydown 真心不实用。
http://baike.baidu.com/view/15482.htm?from_id=99077&type=syn&fromtitle=ascii%E7%A0%81&fr=aladdin
此处有DEC的值,此方法较方便的更改限制 数字,字母,或者其它限制自己DIY等等的输入
'a-z的ASCII码为97-122
' A -Z的ASCII码为65 - 90
'Asc(a)将a转为ASCII码,+32后刚好是小写a的ASCII码
' 再用Chr函数转为对应字符()
'限制只能输入字母。
Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
'a-z的ASCII码为97-122
' A -Z的ASCII码为65 - 90
'Asc(a)将a转为ASCII码,+32后刚好是小写a的ASCII码
' 再用Chr函数转为对应字符()
If TextBox2.Text = "" Then
'防止为空时出错
Else
For i = 1 To Len(TextBox2.Text)
'Debug.Print(Strings.Mid(TextBox2.Text, i, 1))
If Asc(Strings.Mid(TextBox2.Text, i, 1)) <= 122 _
And Asc(Strings.Mid(TextBox2.Text, i, 1)) >= 97 _
Or Asc(Strings.Mid(TextBox2.Text, i, 1)) >= 65 _
And Asc(Strings.Mid(TextBox2.Text, i, 1)) <= 90 Then
Debug.Print("输入的字母")
Else
TextBox2.Text = ""
End If
Next
End If
End Sub
2014年05月08日 11点05分 9
level 11
[咦]对了,突然想起我以前下载了个vb的只能输入数字源码,不知道能不能转换过来
2014年05月09日 01点05分 10
level 5
楼主你这是非主流做法。。。
2014年05月15日 05点05分 11
请教下你的主流做法
2014年05月15日 11点05分
1