Прежде чем это будет помечено, позвольте мне признать, что он довольно похож на вопрос, который я задал пару дней назад, о нескольких других проблемах, но после использования ответов на обе проблемы, которые у меня были, Теперь я столкнулся с другой проблемой. Кроме того, не уверен, что название действительно соответствует проблеме, которую я имею, но похоже, что это может быть проблема того, как код упорядочен в программе.Инкремент в Visual Basic
Конечной целью этой программы является подсчет количества калорий в рецептуре на основе ингредиентов, добавленных в список рецептов из списка ингредиентов, и количества каждого выбранного ингредиента. Я также должен выполнить несколько различных тестов, чтобы предотвратить сбой программы.
- Если текстовое поле количества осталось пустым, программа должна по умолчанию добавить 1 из выбранного ингредиента.
- Если в текстовое поле введено что-либо, кроме номера, программа должна отображать окно сообщения, в котором пользователь должен указать числовое количество.
Моя основная проблема заключается в том, что независимо от того, как я пытаюсь настроить код, чтобы он работал, я не могу заставить TotalCalories увеличиваться, поэтому он продолжает давать мне значение 0 в качестве ответа. Я как бы нахожусь вовремя, поэтому, если это возможно, исправить это, не переписывая большую часть кода, который у меня уже есть, это было бы здорово.
Вот код, который я написал
Public Class Form1
Private TotalCalories As Integer = 0
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
Dim i As Integer = lstIngredients.SelectedIndex
Dim Quantity As Double
Dim intCount As Integer = 0
If Trim(txtQuantity.Text) = "" Then
Quantity = 1
Else
Quantity = Me.txtQuantity.Text
End If
If IsNumeric(txtQuantity.Text) = False Then
MessageBox.Show("The quantity entered is not numeric. Please add a numeric quantity.")
End If
If intCount < Quantity Then
lstRecipe.Items.Add(Quantity & " " & lstIngredients.Text)
intCount += 1
End If
If lstRecipe.Text = "Eggs(each)" Then
TotalCalories += Quantity * 72
ElseIf lstRecipe.Text = "Flour(cups)" Then
TotalCalories += Quantity * 455
ElseIf lstRecipe.Text = "Milk(cups)" Then
TotalCalories += Quantity * 86
ElseIf lstRecipe.Text = "Sugar(cups)" Then
TotalCalories += Quantity * 774
ElseIf lstRecipe.Text = "Butter(tablespoons)" Then
TotalCalories += Quantity * 102
End If
End Sub
Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
lstRecipe.Items.Clear()
txtQuantity.Clear()
txtAnswer.Clear()
TotalCalories = 0
End Sub
Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
txtAnswer.Text = TotalCalories
End Sub
End Class
Я также попытался это с помощью Если lstRecipe.text = (Количество & "" & "Яйца" & "" "(каждый)") Тогда ... Но это тоже не сработало.
Внутри ' Если IsNumeric (txtQuantity.Text) = False Затем 'block, после строки' MessageBox.Show', введите следующую строку 'Exit Sub'. – rskar
'intCount' здесь ничего не делает,' intCount
Plutonix
Спасибо за помощь. Я исправил исходную проблему в окне сообщения, отображая, когда поле количества осталось пустым благодаря сочетанию комментариев и ответа ниже. Я понимаю, что вы имеете в виду @Plutonix, я неправильно читаю инструкции, когда я впервые начал работать над этим, и думал, что мы должны добавить элемент в список определенное количество раз, исходя из того, что было введено в количестве, например, если бы они были выбраны яйца, и положить количество 3, я имел его добавить яйца три раза, а не «3 яйца», как это написано сейчас. Поэтому спасибо, что указали, что мне больше не нужен счетчик. –