Vb.net 根据密钥数组检查e.KeyChar

Vb.net 根据密钥数组检查e.KeyChar,vb.net,winforms,textbox,key,Vb.net,Winforms,Textbox,Key,这可以检查一下吗?我在MSDN上找不到太多的帮助,也找不到任何地方可以帮助我。我不想用大量的if/else来检查我的文本框中是否输入了数字,我想把它们全部放在一个数组或列表中,并对输入的内容进行简单的包含(不存在)。如果在文本框中输入了任何数字,我希望它做的就是删除文本框中突出显示的空文本 Private Sub txt_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventAr

这可以检查一下吗?我在MSDN上找不到太多的帮助,也找不到任何地方可以帮助我。我不想用大量的if/else来检查我的文本框中是否输入了数字,我想把它们全部放在一个数组或列表中,并对输入的内容进行简单的包含(不存在)。如果在文本框中输入了任何数字,我希望它做的就是删除文本框中突出显示的空文本

 Private Sub txt_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles fptSSN.KeyPress
        Dim i As Integer
        Dim keysList As List(Of Keys)
        Dim keys() As Keys = {Windows.Forms.Keys.D0, Windows.Forms.Keys.D1, Windows.Forms.Keys.D2, Windows.Forms.Keys.D3, Windows.Forms.Keys.D4, Windows.Forms.Keys.D5, Windows.Forms.Keys.D6, Windows.Forms.Keys.D7, Windows.Forms.Keys.D8, Windows.Forms.Keys.D9, Windows.Forms.Keys.NumPad0, Windows.Forms.Keys.NumPad1, Windows.Forms.Keys.NumPad2, Windows.Forms.Keys.NumPad3, Windows.Forms.Keys.NumPad4, Windows.Forms.Keys.NumPad5, Windows.Forms.Keys.NumPad6, Windows.Forms.Keys.NumPad7, Windows.Forms.Keys.NumPad8, Windows.Forms.Keys.NumPad9}

        keysList.AddRange(keys)

           If txt.Text = "         " And e.KeyChar = ?????????????? Then
                txt.Text = ""
            End If
        Next
    End Sub
您可以使用:


由于您正在查找数字,因此可以利用IsNumeric()函数:

    If IsNumeric(e.KeyChar) Then
        txt.Text = String.Empty
        e.Handled = True
    End If

如果您不想在清除该数字时将其显示在文本框中,请将e.Handled=True。

谢谢您的建议。将来我应该有更多的键来检查而不是数字,这将是一个很好的功能,但在这种情况下,因为我只使用数字,所以IsNumeric是一种安全的方法。:)谢谢没问题!祝你好运
    If IsNumeric(e.KeyChar) Then
        txt.Text = String.Empty
        e.Handled = True
    End If