VB.net: Разрешаване само на цифри, копиране, поставяне назад интервал изтриване в WPF?

как да разреша само цифри, без . , -, и също така да копирам и да поставя Ctrl C + Ctrl V, backspace and delete в текстово поле във VB.net WPF?

Тъй като е WPF, натисканията на клавиши и клавишите не работят. Не знам решението на това.

Изглежда не мога да намеря решение за това, без това програмата ми ще се повреди всеки път, когато някой въведе нещо различно от цифри. Моля помогнете!


person pleasega    schedule 06.07.2015    source източник
comment
възможен дубликат на Как да да накарате TextBox да приема само цифрово въвеждане в WPF?   -  person Rick Smith    schedule 06.07.2015
comment
Здравейте, бих го искал във vb.net, тъй като не знам нито един c. Дано разбереш.   -  person pleasega    schedule 06.07.2015
comment
Ааа, пропуснах това... съжалявам. Опитайте тук: stackoverflow.com/questions/4801430/   -  person Rick Smith    schedule 06.07.2015
comment
Здравейте, аз също видях това, но не може да се използва, тъй като моят е WPF и wpf няма ключови символи. Ето защо наблегнах на vb.net wpf. Благодаря   -  person pleasega    schedule 06.07.2015


Отговори (3)


В случаи като този имам склонност да използвам контролата numericUpDown от VB Toolbox. Приема само цифрови стойности и има някои удобни бутони за увеличаване или намаляване на стойността. Освен това можете да зададете минимална и максимална стойност.

person ThatGuy    schedule 07.07.2015
comment
здравей wpf няма numericupdown и не мога да въведа Controls:TextBoxHelper.ClearTextButton="True" с числово updown. Някакви други идеи? - person pleasega; 07.07.2015
comment
Ще трябва да инсталирате разширения инструментариум на wpf wpftoolkit.codeplex.com и да използвате цяло число, двойно или десетичен знак нагоре -надолу инструмент. - person ThatGuy; 09.07.2015

О, намерих отговора, просто включете тази функция.

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`
person pleasega    schedule 07.07.2015

този прост код ще ви помогне да поставите цифри само за текстови полета на 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
person Emmanuel Arrieta    schedule 13.12.2019