Google
      
发新话题
打印

VB键盘过滤技术

VB键盘过滤技术

'因为程序经常用到键盘过滤功能,所以自己编写了一个键盘过滤函数与大家分享。


'窗体
Private Sub Text1_KeyPress(KeyAscii As Integer)
   
    '0-9、Ctrl+C、Ctrl+V、Ctrl+X
    CheckKeyAscii KeyAscii, KeyChar.keyDigit & _
                            Chr$(KeyChar.keyCtrlC) & _
                            Chr$(KeyChar.keyCtrlV) & _
                            Chr$(KeyChar.keyCtrlX)
   

End Sub



'---------------------------------------------------------------------------------------------
'模块

Public Enum KeyChar
   
    keyAdd = 43          '+  加号;正号
    keySubtract = 49     '-  减号;负号
    keyMultiply = 42     '* 乘号
    keyDivide = 47       '/ 除号
    keyEqual = 61         '= 等于号
    keyLessThan = 60      '< 小于号
    keyMoreThan = 62      '> 大于号
    keyPercent = 37       '%  百分之…
    keyOpenBrace = 123    '{  左花括号
    keyCloseBrace = 125   '}  右花括号
    keyOpenParen = 40     '(  左圆括号
    keyCloseParen = 41    ')  右圆括号
    keyOpenBracket = 91   '[  左方括号
    keyCloseBracket = 93  ']  右方括号
    keyDot = 46           '.  句号,点
    keyVerticalBar = 124  '|  竖线
    keyReference = 38     '& 引用
    keyPound = 35         '#  井号
    keyBackslash = 92     '\  反斜线转义符
    keyTilde = 126        '~  波浪符
    keyComma = 44         ',  逗号
    keyColon = 58         ':  冒号
    keySemicolon = 59     ';  分号
    keyQuestion = 63      '?  问号
    keyExclamationMark = 33 '! 叹号
    keySingleQuotes = 39   '' 单引号
    keyDoubleQuotes = 34   '" 双引号
   
    keyCtrlC = 3            'Ctrl+C
    keyCtrlV = 22           'Ctrl+V
    keyCtrlX = 24           'Ctrl+X
    keyCtrlA = 1            'Ctrl+A
    keyBackspace = 8        '退格
    keySpace = 32           '空格
    keyReturn = 13          '回车
   
    keyDigit = "1234567890"
   
End Enum


Public Sub CheckKeyAscii(ByRef ParKeyAscii As Integer, ByVal ParQualifyString As String)
        
    If InStr(ParQualifyString, Chr(ParKeyAscii)) <= 0 Then
            
        ParKeyAscii = 0
            
    End If
   
End Sub

TOP

发新话题