Программа visual basic для написания наименьшего числа

Я новичок в Visual Basic и пытаюсь написать программу для определения наименьшего числа из трех. Каждый раз, когда я запускаю программу, она не открывает окно сообщения. Вот что у меня есть на данный момент:

Открытый класс Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim TextBox1 As Integer
    Dim TextBox2 As Integer
    Dim TextBox3 As Integer

    TextBox1 = Val(TextBox1)
    TextBox2 = Val(TextBox2)
    TextBox3 = Val(TextBox3)

    If TextBox1 < TextBox2 And TextBox1 < TextBox3 Then
        MessageBox.Show(TextBox1)


    End If



End Sub

Включите Option Strict для всех ваших проектов. Он укажет вам на множество ошибок.

Mary 14.09.2018 06:53

Событие вашей кнопки не знает, что вы имеете в виду текстовые поля в вашей форме. Он видит только 3 локальные переменные типа Integer, которые инициализируются значением 0. Это похоже на код VB6, когда все еще существуют свойства по умолчанию.

Mary 14.09.2018 07:04

Функция Val осталась с VB6 и доступна для обратной совместимости. Его заменяет метод .Net .Parse, .TryParse (), CType (value, Type), CInt () или Convert.ToInt32 ()

Mary 14.09.2018 07:13
0
3
1 978
2

Ответы 2

Можете ли вы опубликовать интерфейс?

Короче говоря, ваши значения (TextBox1, 2, 3) не имеют значений, потому что вы им ничего не присвоили

Dim value1 as Integer = CInt(TextBox1.Text)
Dim value2 as Integer = CInt(TextBox2.Text)

Я предполагаю, что у вас есть текстовые поля на интерфейсе, где вы можете ввести число. В коде программной части вам нужно использовать свойство .Text для извлечения значения из текстового поля. CInt - это просто метод преобразования в целое число из строки.

Кроме того, я бы использовал логику «AndAlso» вместо «And» - это просто лучше по производительности. Если первый набор логики не работает, то вторая часть не запускается, что позволяет сэкономить время на производительность.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles     Button1.Click

    Dim value1 As Integer = CInt(TextBox1.Text)
    Dim value2 As Integer = CInt(TextBox2.Text)
    Dim value3 As Integer = CInt(TextBox3.Text)

    If value1 < value2 AndAlso value1 < value3 Then
        MessageBox.Show(value1.ToString())
    Else
        MessageBox.Show("Some output here....")
    End If



End Sub

Вы также можете использовать .Min с массивом, чтобы найти наименьшее значение.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    'Declare an array of type Integer with 3 elements
    Dim value(2) As Integer
    'A variable to hold the parsed value of TextBoxes
    Dim intVal As Integer
    If Integer.TryParse(TextBox1.Text, intVal) Then
        'Assign the parsed value to an element of the array
        value(0) = intVal
    End If
    If Integer.TryParse(TextBox2.Text, intVal) Then
        value(1) = intVal
    End If
    If Integer.TryParse(TextBox3.Text, intVal) Then
        value(2) = intVal
    End If
    'Use .Min to get the smalles value
    Dim minNumber As Integer = value.Min
    MessageBox.Show($"The smalles value is {minNumber}")
    'Or
    'in older versions of vb.net
    'MessageBox.Show(String.Format("The smallest value is {0}", minNumber))
End Sub

Другие вопросы по теме