Public Function InputNumAndCharCheck(ByVal pChar As Char) As Boolean
Dim reg As New System.Text.RegularExpressions.Regex("^[A-Za-z0-9,/-,//,/|,/$,/+,/%,/&,/',/(,/),/*,/x20-/x2f,/x3a-/x40,/x5b-/x60,/x7b-/x7e,/x80-/xff,/u3000-/u3002,/u300a,/u300b,/u300e-/u3011,/u2014,/u2018,/u2019,/u201c,/u201d,/u2026,/u203b,/u25ce,/uff01-/uff5e,/uffe5,/x08,/x16,/x03]+$")
If pChar.Equals(Chr(22)) Then
Dim iData As DataObject = Clipboard.GetDataObject()
'文字列がクリップボードにあるか
If (iData.GetDataPresent(DataFormats.Text)) Then
'文字列があるので取得しチェック
Dim clipStr As String = iData.GetData(DataFormats.Text).ToString()
If reg.IsMatch(clipStr) = False Then
Return False
End If
End If
Else
If reg.IsMatch(pChar) = False Then
Return False
End If
End If
Return True
End Function
其中 Dim clipStr As String = iData.GetData(DataFormats.Text).ToString()这句是从剪贴板中取得内容;就是要对ctrl+v的内容做检查。