2016-10-23 2 views
1

Я пытаюсь сделать программу в визуальной базовой в тексте Измененное событие, когда при вводе значения текстовое поле программа сохранит это значение, а когда удалит это значение и введите новое значение, оно будет использовать первое значение и сравнивает с новым значением, если новое значение> от первого значения. Уменьшает новое значение от первого значения (новое значение-значение) и если новое значение < от первого значения оно уменьшает первое значение от нового значения (первое значение - новое значение) и результат другого текстового полерасчетная программа в визуальном базовом

Dim f As String 
Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged 
    If TextBox2.Text > f Then 
     TextBox18.Text = TextBox2.Text - f 
     f = (TextBox2.Text) 
    End If 

Я делаю этот код он работает, но когда новое значение (10) или больше ее не работает

+2

использование 'Option Strict On', конвертировать' 'String' в Integer' (иметь ** численное сравнение **, а не ** лексикографический **) и не использовать «TextChanged» для этого, сравнение будет происходить при каждом нажатии клавиши с * «незавершенными еще» значениями *; предпочитают 'Validated' /' Validating' или 'LostFocus' – Sehnsucht

ответ

0

Попробуйте следующее:

Dim f As String 
Private Sub TextBox2_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.Leave 
If not string.isnullOrEmpty(TextBox2.Text) Then 
If CDbl(TextBox2.Text) > CDbl(f) Then 
    TextBox18.Text = CStr(CDbl(TextBox2.Text) - CDbl(f)) 
    f = TextBox2.Text 
End If 
End If 
End Sub 
+0

Что делать, если введенные значения не являются целыми? (например, что, если пользователь вводит 12.34?) –

+0

Используйте CDec() или CDbl() – Hadi

Смежные вопросы