Как я могу сложить четыре числа из текстовых полей вместе и отобразить ответ в отдельном текстовом поле в Visual Studio?
Визуальные основы В моем коде я заставляю пользователя вводить длину и высоту каждой из четырех стен. Я получил код для умножения длины на высоту, чтобы обработать площадь каждой стены и отобразить каждую из четырех областей в отдельных текстовых полях. Теперь я хочу сложить четыре числа в текстовых полях и отобразить ответ в отдельном текстовом поле, когда я нажимаю кнопку.
Это код, который у меня есть на данный момент;
Dim txtLength1 As Integer
Dim txtLength2 As Integer
Dim txtLength3 As Integer
Dim txtLength4 As Integer
Dim txtHeight1 As Integer
Dim txtHeight2 As Integer
Dim txtHeight3 As Integer
Dim txtHeight4 As Integer
Dim Area As Integer
Area = TotalArea.Text
txtLength1 = Length1.Text
txtHeight1 = Height1.Text
txtLength2 = Length2.Text
txtHeight2 = Height2.Text
txtLength3 = Length3.Text
txtHeight3 = Height3.Text
txtLength4 = Length4.Text
txtHeight4 = Height4.Text
Area1.Text = txtLength1 * txtHeight1
Area2.Text = txtLength2 * txtHeight2
Area3.Text = txtLength3 * txtHeight3
Area4.Text = txtLength4 * txtHeight4
Area = Area1.Text + Area1.Text + Area3.Text + Area4.Text
End Sub
Конечный класс
Когда я запускаю этот код, я получаю сообщение об ошибке: "Преобразование из строки" в тип "Integer" недопустимо ".
2 ответа
Без учета тенденции людей писать другие вещи, кроме целых чисел, это бы сработало:
Dim txtLength1 As Integer
Dim txtLength2 As Integer
Dim txtLength3 As Integer
Dim txtLength4 As Integer
Dim txtHeight1 As Integer
Dim txtHeight2 As Integer
Dim txtHeight3 As Integer
Dim txtHeight4 As Integer
Dim Area As Integer
Area = Convert.ToInt32(TotalArea.Text)
txtLength1 = Convert.ToInt32(Length1.Text)
txtHeight1 = Convert.ToInt32(Height1.Text)
txtLength2 = Convert.ToInt32(Length2.Text)
txtHeight2 = Convert.ToInt32(Height2.Text)
txtLength3 = Convert.ToInt32(Length3.Text)
txtHeight3 = Convert.ToInt32(Height3.Text)
txtLength4 = Convert.ToInt32(Length4.Text)
txtHeight4 = Convert.ToInt32(Height4.Text)
Dim Area1Total As Integer = txtLength1 * txtHeight1
Dim Area2Total As Integer = txtLength2 * txtHeight2
Dim Area3Total As Integer = txtLength3 * txtHeight3
Dim Area4Total As Integer = txtLength4 * txtHeight4
Area1.Text = Area1Total
Area2.Text = Area2Total
Area3.Text = Area3Total
Area4.Text = Area4Total
Area = Area1Ttotal + Area2Total + Area3Total + Area4Total
Редактировать: Сделаны некоторые незначительные корректировки, чтобы вы могли иметь последнюю часть области, как и должно (так как.Text снова превратит ее в строку).
Изменить 2:
Если элемент управления "TotalArea" является не полем, которое должен заполнять пользователь, а суммой общей площади, рассчитанной по разным длинам и высотам, ваш код должен выглядеть следующим образом:
Dim txtLength1 As Integer
Dim txtLength2 As Integer
Dim txtLength3 As Integer
Dim txtLength4 As Integer
Dim txtHeight1 As Integer
Dim txtHeight2 As Integer
Dim txtHeight3 As Integer
Dim txtHeight4 As Integer
Dim Area As Integer
txtLength1 = Convert.ToInt32(Length1.Text)
txtHeight1 = Convert.ToInt32(Height1.Text)
txtLength2 = Convert.ToInt32(Length2.Text)
txtHeight2 = Convert.ToInt32(Height2.Text)
txtLength3 = Convert.ToInt32(Length3.Text)
txtHeight3 = Convert.ToInt32(Height3.Text)
txtLength4 = Convert.ToInt32(Length4.Text)
txtHeight4 = Convert.ToInt32(Height4.Text)
Dim Area1Total As Integer = txtLength1 * txtHeight1
Dim Area2Total As Integer = txtLength2 * txtHeight2
Dim Area3Total As Integer = txtLength3 * txtHeight3
Dim Area4Total As Integer = txtLength4 * txtHeight4
Area1.Text = Area1Total
Area2.Text = Area2Total
Area3.Text = Area3Total
Area4.Text = Area4Total
Area = Area1Ttotal + Area2Total + Area3Total + Area4Total
TotalArea.Text = Area
Так как TextBox
control хранит его содержимое в виде строк / текстов, вам нужно будет проанализировать эти текстовые значения в числовое значение, чтобы вы могли затем использовать их для расчетов.
Смотрите следующий пример:
txtLength1 = int.Parse(Length1.Text)
редактировать: вы также можете рассмотреть возможность использования int.TryParse
метод вместо int.Parse
определить, когда пользователь ввел нечисловой текст.