Я действительно не хотел делать твою домашнюю работу за тебя, но я боялся, что ты, возможно, запутался.
Сначала давайте go над твоим кодом . См. Комментарии
Private Sub btnShow_Click(sender As Object, e As EventArgs) Handles btnShow.Click
Dim i, Container, Max, Numbers 'Don't declare variables without an As clause
Max = 0 'Max is an object
i = 1 'i is and object
While i <= 10 'the parenthesis are unnecessary. You can't use <= 2 with an object
Numbers = InputBox("please enter a number", "Enter a number")
Max = Numbers
Container = Container & " " & Numbers 'Container is an object; you can't use & with an object
i = i + 1 'Again with the object i can't use +
End While
lblresult.Text = Container
End Sub
Теперь мой подход .
Я создал List(Of T)
на уровне Form
, чтобы его можно было увидеть из разных процедур. T
обозначает тип. Я мог бы быть встроенным типом или типом, который вы создаете, создавая Class
.
Событие первого щелчка заполняет список введенными числами. Я использовал .TryParse
для проверки правильности введенного значения. Первый параметр - это строка; вход от пользователя. Второй параметр - это переменная для хранения преобразованной строки. .TryParse
очень умный. Он возвращает True
или False
в зависимости от того, может ли входная строка быть преобразована в правильный тип, и заполняет второй параметр преобразованным значением.
Второе событие щелчка проходит по списку, формируя строку для отображения в Label1
. Затем мы используем методы, доступные для List(Of T)
, чтобы получить числа, которые вы хотите.
Private NumbersList As New List(Of Integer)
Private Sub FillNumberList_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim i As Integer
While i < 10
Dim input = InputBox("Please enter a whole number")
Dim inputInt As Integer
If Integer.TryParse(input, inputInt) Then
NumbersList.Add(inputInt)
i += 1 'We only increment i if the parse is succesful
End If
End While
MessageBox.Show("Finished Input")
End Sub
Private Sub DisplayResults_Click(sender As Object, e As EventArgs) Handles Button2.Click
Label1.Text = "You input these numbers "
For Each num In NumbersList
Label1.Text &= $"{num}, "
Next
Label2.Text = $"The largest number is {NumbersList.Max}"
Label3.Text = $"The smallest number is {NumbersList.Min}"
End Sub