在过去 20 年的代码编写中,我总是使用以下基本原理来检查 TextBoxes Check Characters。
首先,您必须创建一个单独的类,您可以将其称为(为方便起见)Char_Validation。
在这个类中,您将放置一个返回布尔值的函数,如下所示。
Public Class Char_Validation
Public Const Gr As String = "Greek"
Public Const En As String = "English"
Public Const Num As String = "Numbers"
Public Const FullGr As String = "Full Greek"
Public Const FullEn As String = "Full English"
Public Const EnN As String = "English with Numbers"
Public Const GrN As String = "Greek with Numbers"
Public Shared Function ValidateChar(ByVal AsciiChar As String, ByVal CharTable As String, ByVal sender As Object, ByVal e As System.EventArgs) As Boolean
Dim ConvChar As Integer = CUInt(Microsoft.VisualBasic.Asc(AsciiChar))
Dim ConvCharW As Integer = CUInt(Microsoft.VisualBasic.AscW(AsciiChar))
ValidateChar = False
Select Case CharTable
Case En
Select Case ConvChar
Case 65 To 126, 145 To 150, 8, 32 To 47, 58 To 64, 128, 130
ValidateChar = True
End Select
Case EnN
Select Case ConvChar
Case 48 To 57, 65 To 126, 8, 32, 45
ValidateChar = True
End Select
.
.
.
.
.
Case Num
Select Case ConvChar
Case 44 To 57, 92, 8
ValidateChar = True
End Select
End Select
End Function
End Class
在您的 Class in Form 中,您将使用 TextBox_KeyPress,您将在其上使用以下代码。
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
ErrorProvider1.Clear()
ErrorLabel.ForeColor = Drawing.Color.Black
Select Case Char_Validation.ValidateChar(e.KeyChar, Char_Validation.Num, sender, e)
Case True
Case False
ErrorProvider1.SetError(TextBox1, "Wrong Character Only Numbers")
Beep()
e.KeyChar = ""
End Select
End Sub
因此,您将禁止用户将字符置于您的决定之外。
我希望这将从现在开始涵盖您。