文本框中只能输入数字

简介: 1 同上上篇日志  老师给的代码Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.

1 同上上篇日志  老师给的代码

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        Dim c As Char
        c = e.KeyChar
        If c = "."c Then
            If InStr(TextBox1.Text, e.KeyChar) > 0 Or (InStr(TextBox1.Text, "-") > 0) And (TextBox1.SelectionStart = 0) Then
                e.KeyChar = ""
            End If
        ElseIf c = "-"c Then
            If InStr(TextBox1.Text, c) > 0 Or TextBox1.SelectionStart > 0 Then
                e.KeyChar = ""
            End If
        ElseIf c = "0"c Then
            If (TextBox1.SelectionStart = 0 And Not TextBox1.Text.StartsWith("0") And TextBox1.Text.Length <> 0) Or (TextBox1.SelectionStart <= 1 And TextBox1.Text.StartsWith("0")) Then
                e.KeyChar = ""
            End If
        ElseIf c = ControlChars.Back Then
        ElseIf InStr("123456789", e.KeyChar) <= 0 Then
            e.KeyChar = ""
        End If
    End Sub

 

说实话看的不是太懂=_+

e.KeyValue、e.KeyChar 都可以获得键盘的输入值,请问两种在用法和功能上有什么区别?
KeyChar是在keyPressEvent里面获得的char类型返回值,
KeyValue取得KeyDown 或KeyUp事件的键盘值,返回的整形。
InStr
返回一个整数,该整数指定一个字符串在另一个字符串中的第一个匹配项的起始位置。
String2 位于 String1 ---------------匹配开始的位置
TextBoxBase.SelectionStart 属性
获取或设置文本框中选定的文本起始点。

 

2. 控制键盘只能输入数字//未验证

private   void   textBox3_KeyPress(object sender,System.Windows.Forms.KeyPressEventArgs e) 
{ 
//阻止从键盘输入键 
e.Handled = true; 
if(e.KeyChar> =48 && e.KeyChar<=57) 
  { 
   e.Handled  = false; 
  } 
} 

 

 

3.参考网页:http://hi.baidu.com/pepsisoft/blog/item/d8664327bb011c03908f9d2c.html  //这个我看懂了=_+

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Textbox1.KeyPress
    If Char.IsDigit(e.KeyChar) Or e.KeyChar = "." Or e.KeyChar = Chr(8) Then
        If e.KeyChar = "." And InStr(TextBox1.Text, ".") > 0 Then
            e.Handled = True
         Else
             e.Handled = False
         End If
     ElseIf e.KeyChar = "-" And TextBox1.Text = "" Then
         e.Handled = False
     Else
         e.Handled = True
     End If
End Sub

 

====================

 

另有一帖子是搜keychar搜到的,关于Datagrid键盘事件响应。

http://www.newasp.net/tech/net/10081.html

目录
相关文章
|
8月前
|
C#
C# DEV TextEdit 设置文本框只能输入数字(整数)
C# DEV TextEdit 设置文本框只能输入数字(整数)
|
Web App开发 C++
c++ 实现不在同一程序内,在光标处(当前有焦点的窗体输入框)输入字符
c++ 实现不在同一程序内,在光标处(当前有焦点的窗体输入框)输入字符
126 1
C#限制文本框只能输入指定的类型(汉字、数字)
C#限制文本框只能输入指定的类型(汉字、数字)
222 0
input输入框输入只能输入数字、字母等组合的正则表达式
input输入框输入只能输入数字、字母等组合的正则表达式
760 0
|
JavaScript
可输入的下拉框(简易实现)
第一种效果 (带自动匹配)这个效果再之前的的博客里面已经讲到过了,还没有看过的小伙伴可以移步→ http://www.cnblogs.com/zhangxiaoyong/p/5763432.html 第二种效果 今天主要讲第二种效果,也比较简单,先看下效果 实现 页面部分 1...
1885 0
|
存储 监控 C++
C++ 输入的是1.3变1.29999995问题
C++ 输入的是1.3变1.29999995问题
126 0
C++ 输入的是1.3变1.29999995问题
C++输入总结
总结下在编程题中的输入数据方法!(*^▽^*)点击关注:阿里云科技快讯,有机会获得精美礼品!
3974 0
|
C#
实现:C#窗体中的文本框只能输入中文汉字,其他输入无效。问:正则表达式怎么用?
原文:实现:C#窗体中的文本框只能输入中文汉字,其他输入无效。问:正则表达式怎么用? private void textBox1_KeyPress(object sender, KeyPressEventArgs e...
1571 0