如何在VB.NET中防止文本框中输入和出现非数值?

如何在VB.NET中防止文本框中输入和出现非数值?,vb.net,Vb.net,我真的需要防止任何非数字输入,包括粘贴到我的文本框,我还想防止它在被删除之前出现在文本框上,如果你对你的代码建议给出一些提示,那就太好了,因为我只是一个初学者 编辑:添加CtrlV处理和优化按键事件。 您可以使用此代码来防止处理数值: Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress If Char.IsDigit(e.KeyChar) T

我真的需要防止任何非数字输入,包括粘贴到我的文本框,我还想防止它在被删除之前出现在文本框上,如果你对你的代码建议给出一些提示,那就太好了,因为我只是一个初学者

编辑:添加CtrlV处理和优化按键事件。 您可以使用此代码来防止处理数值:

 Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress

    If Char.IsDigit(e.KeyChar) Then ' Check if the value is a number
        e.KeyChar = ChrW(0)
        e.Handled = True
    End If

End Sub
对于CtrlV处理,您可以使用以下代码:

Private Sub TextBox1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
    ' Checking if control + v is clicked or Shift + Insert is clicked
    If (e.Control AndAlso Char.ToLower(ChrW(e.KeyValue)) = "v"c) Or (e.Shift AndAlso e.KeyValue = Keys.Insert) Then
        e.Handled = True
        e.SuppressKeyPress = True
    End If
End Sub

请查看以下链接:


如果您还有任何疑问,请告诉我。

重复如果他们输入数字,会有什么灾难呢?我在提问之前已经看过了这些帖子,我很确定它们没有抓住我的一个要点!防止现场粘贴@SaechelI无法理解你@Protonix它不起作用,因为悲伤!将Handles textbox1.Keypress更改为Handles yourtextbox.Keypress