Vb.net 在VisualStudio2010中,如何仅允许文本框中的数字、退格和连字符? 如果(e.KeyChar“9”)和同样的e.KeyChar控件chars.Back和同样的e.KeyChar=“-”则 e、 已处理=真

Vb.net 在VisualStudio2010中,如何仅允许文本框中的数字、退格和连字符? 如果(e.KeyChar“9”)和同样的e.KeyChar控件chars.Back和同样的e.KeyChar=“-”则 e、 已处理=真,vb.net,visual-studio,visual-studio-2010,Vb.net,Visual Studio,Visual Studio 2010,我似乎无法让代码正常工作。我试图只包括文本框来输入数字、退格和连字符,但连字符不起作用,其他工作。帮助?这总是一个痛苦的问题,也是一个很常见的问题。我通常的管理方法是利用按键事件:- If (e.KeyChar < "0" OrElse e.KeyChar > "9") AndAlso e.KeyChar <> ControlChars.Back AndAlso e.Keychar = "-" Then e.Handled = True 忽略Function.R

我似乎无法让代码正常工作。我试图只包括文本框来输入数字、退格和连字符,但连字符不起作用,其他工作。帮助?

这总是一个痛苦的问题,也是一个很常见的问题。我通常的管理方法是利用按键事件:-

If (e.KeyChar < "0" OrElse e.KeyChar > "9") AndAlso e.KeyChar <> ControlChars.Back AndAlso e.Keychar = "-" Then
    e.Handled = True

忽略Function.ResetTimer-此函数用于防止应用程序关闭。我的客户希望应用程序在10分钟不活动后关闭。

使用MaskedTextBox。这是一个非常有用的控件。无需任何额外的编码,它允许您指定文本框中允许的字符,我认为这正是您要查找的字符

你已经问过这个问题了。重复:最后一个操作数必须是
,而不是
=
。这只是为了强调@HansPassant所说的。代替AndAlso e.Keychar=“-”使用AndAlso e.Keychar“-”好的,谢谢你的帮助。meThis没有提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。-我编辑了我的答案,使之更“友好”,但它确实为OP的问题提供了一个解决方案。而且比编写额外的代码更干净,在这种情况下,额外的代码是不必要的。
    Private Sub nudInsertFTS_KeyPress(sender As Object, e As KeyPressEventArgs) Handles nudInsertFTS.KeyPress, nudInsertTS.KeyPress, nudInsertFTL.KeyPress, nudInsertTL.KeyPress, nudInsertTTS.KeyPress, nudInsertTTL.KeyPress
    ' Reset The Timer
    Functions.ResetTimer()
    'If certain characters then allow
    If e.KeyChar = vbBack Then Exit Sub
    ' do not allow the comma character (or any other invalid characters)
    If e.KeyChar = "." Or e.KeyChar = "-" Or IsNumeric(e.KeyChar) = False Then e.KeyChar = Chr(0)

End Sub