代码之家  ›  专栏  ›  技术社区  ›  Kevin Chen

在VisualStudio2010中,如何在文本框中只允许数字、退格和连字符?

  •  -2
  • Kevin Chen  · 技术社区  · 10 年前
    If (e.KeyChar < "0" OrElse e.KeyChar > "9") AndAlso e.KeyChar <> ControlChars.Back AndAlso e.Keychar = "-" Then
        e.Handled = True
    

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

    2 回复  |  直到 10 年前
        1
  •  0
  •   Jeroen    10 年前

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

        2
  •  -1
  •   A Paul Savage    10 年前

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

        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
    

    忽略函数。重置计时器-这是一个防止应用程序关闭的功能。我的客户希望应用程序在10分钟不活动后关闭。