У меня есть большая проблема здесь, на моем калькуляторе.VB.net: прекратить отправку удаленных и обратных нажатий клавиш, если в текстовом поле нет текста. WPF
У меня есть текстовое поле с динамическим обновлением, поэтому на textbox_change он автоматически щелкнет кнопку ввода.
Private Sub textBox_TextChanged(sender As Object, e As TextChangedEventArgs) Handles textBox.TextChanged
If IsNumeric(textBox.Text) = False Then
button.IsEnabled = False
Else
button.IsEnabled = True
End If
button_Click(sender, e)
End Sub
Так, как моя кнопка сломается на любых других нажатий клавиш, чем целое число посылается, каждый раз, когда пользователь отправляет забой или удалить, если нет других символов в текстовом поле, программа даст сбой.
Код моей кнопки, который будет разбиваться на что угодно, кроме целых чисел, а также на button_click textbox.clear()
и нажатия клавиш (backspace, delete), отправленных, когда в текстовом поле нет целых чисел, так как я думаю, что он обнаруживает удаление клавиши как какую-то другую строку, а не UInt64.
If IsNumeric(textBox.Text) Then
b = CDbl(textBox.Text)
Else
Await Me.ShowMessageAsync("Error", "Please input a number.", MessageDialogStyle.Affirmative)
End If
Dim Input As ULong
Input = Convert.ToUInt64(textBox.Text)
textBox12.Text = (FormatNumber(Input))
Dim m As Decimal
Dim t As Decimal
Dim add As Integer
If b > 100000000 Then
t = 0.06
ElseIf b > 25000000 Then
t = 0.05
ElseIf b > 10000000 Then
t = 0.04
ElseIf b > 5000000 Then
t = 0.03
ElseIf b > 1000000 Then
t = 0.018
ElseIf b > 100000 Then
t = 0.008
End If
m = b - (b * t)
add = b - m
textBox1.Text = add
textBox2.Text = Int(m)
Так как я могу предотвратить это? Поскольку теперь текст не может быть очищен, не будучи чрезвычайно осторожным. Он сработает с необработанным исключением типа «System.FormatException», произошедшего в mscorlib.dll. Могу ли я остановить удаление и backspace, когда в текстовом поле отсутствуют символы? Как мне это сделать? Пожалуйста помоги!
«event» validating on textbox.validating не найден. любая помощь? – pleasega