VB.net:只允许数字,在WPF中复制粘贴空格删除?

时间:2015-07-06 18:10:10

标签: .net wpf vb.net visual-studio keystroke

如何仅允许数字,没有. , -,以及在VB.net WPF中的文本框 中复制粘贴Ctrl C + Ctrl V, backspace and delete

由于它是WPF,键击和按键不起作用。我不知道解决方法。

我似乎无法找到解决方案,如果没有这个,我的程序会在每次有人输入除数字之外的任何内容时中断。请帮忙!

3 个答案:

答案 0 :(得分:0)

在这种情况下,我倾向于使用VB工具箱中的numericUpDown控件。 它只接受数值,并有一些方便的按钮来增加或减少值。此外,您可以设置最小值和最大值。

答案 1 :(得分:0)

哦,我找到了答案,只包括这个功能。

Protected Overrides Sub OnPreviewTextInput(e As    
System.Windows.Input.TextCompositionEventArgs)
e.Handled = Not AreAllValidNumericChars(e.Text)
MyBase.OnPreviewTextInput(e)
End Sub


Private Function AreAllValidNumericChars(str As String) As Boolean
For Each c As Char In str
    If Not [Char].IsNumber(c) Then
        Return False
    End If
Next
Return True

End Function`

答案 2 :(得分:0)

这个简单的代码将帮助您仅在VB.net WPF上为文本框输入数字

Private Sub txtTextBox_PreviewKeyDown(sender As Object, e As KeyRoutedEventArgs) Handles txtTextBox.PreviewKeyDown
    If e.Key <> 8 Then
        '48 - 57  = Ascii codes for numeric only
        If e.Key < 48 Or e.Key > 57 Then
            e.Handled = True
        End If
    End If
End Sub