Как я могу предотвратить повторение вычитания? - PullRequest
0 голосов
/ 16 февраля 2020

Я использую vb.net. Мое состояние:

Dim num1, num2 As Integer

num1 = TextBox1.Text

num2 = TextBox2.Text

TextBox3.Text = num1 - num2

Вычитание работает. Моя проблема, когда я непрерывно нажимаю кнопку для результата, она все еще вычитается. Как я могу предотвратить это, если значение в текстовом поле одно и то же .. Или как я могу сделать это вычитанием один раз?

Пример, MyStockTextBox минус ItemSoldTextBox. После того, как я получу результат, нажав кнопку, при повторном нажатии кнопки она все равно вычитается, даже если я закончила вычитать их.

Это мой код для вычитания.

Private Sub BtnResult_Click(sender As System.Object, e As System.EventArgs) Handles Subtract.Click
    Dim num1, num2 As Integer
    num1 = TextBox1.Text
    num2 = TextBox2.Text
    TextBox3.Text = num1 - num2
End Sub

Ответы [ 2 ]

0 голосов
/ 16 февраля 2020

Прежде всего, добавьте это в начало вашего кода:

Option Strict On
Option Explicit On

Тогда вы увидите кучу ошибок. Это хорошая вещь. В настоящее время вы не управляете типами переменных, и в какой-то момент это может стать проблемой, будь то из-за того, что вы не научились ими управлять или просто из-за этого происходит сбой программы.

Textbox1.Text - это строковый тип. Вы хотите рассчитать числа. У вас наверняка возникнет проблема в какой-то момент.

Поскольку вы, вероятно, хотите использовать целые числа, вот способ, которым вы можете защитить этот фрагмент кода:

Dim num1, num2 As Integer

'If one of the textboxes contains something else than a number, your program won't crash. It returns 'True' when it's able to parse the String into an Integer and 'False' if it can't.
If Integer.TryParse(Number1TextBox.Text, num1) AndAlso Integer.TryParse(Number1TextBox.Text, num2) Then
    Number1TextBox.Text = (num1 - num2).ToString
Else
    MessageBox.Show("Use only integer numbers!")
End If

Это не мешает вашему коду от выполнения операции более одного раза, но результат должен быть одинаковым, чтобы на экране не было видимых изменений.

Существует несколько способов предотвратить повторение одной и той же операции вашим пользователем несколько раз, хотя я сомневаюсь, что это сильно изменится, так как результат не изменится. Дайте мне знать, если я чего-то не получу.

0 голосов
/ 16 февраля 2020

Это мой код для вычитания.

Частный Sub BtnResult_Click (отправитель как System.Object, e как System.EventArgs) Обрабатывает Subtract.Click

    Dim num1,num2  As Integer 
    num1 = TextBox1.Text 
    num2 = TextBox2.Text 
    TextBox3.Text = num1 - num2 

End Sub

...