VB.NET 中的基本用户交互程序出错



有些人可以告诉我我做错了什么吗?我是Visual Basic 2012的新手

我想做什么:

一个输入将保存到整数变量中。另一个输入将保存到 Byte 变量中。输出计算为整数 * 字节/100 的 2 次方。如果用户输入非数值,然后单击该按钮,则使用 Messagebox 显示"输入的值非法"错误。如果用户输入"超出范围"的数字,请使用 Messagebox 显示"输入不在有效范围内"的错误。

这是我的代码:

Public Class Form1
    Dim T1 As String
    Dim T2 As String
    Dim a As Integer
    Dim b As Byte
    Dim c As Integer
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Try
            TextBox1.Text = False
            TextBox2.Text = False
            a = CInt(TextBox1.Text)
            b = CByte(TextBox2.Text)
            c = a * b / 100
            c = c * a * b / 100 ^ 2
            Label3.Text = "Output:" + c.ToString()

        Catch ex As ArgumentOutOfRangeException
            MessageBox.Show("Illegal Value Entered")
        Catch ex As IndexOutOfRangeException
            MessageBox.Show("Input not in valid range")
        Catch ex As Exception
            MessageBox.Show("Some exception has occured")
        End Try
    End Sub
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Me.Close()
    End Sub

End Class

请删除表达式 TextBox1.Text = False(对于 TextBox2),这将始终强制 CInt() 和 CByte() 解析字符串 'False'(不是用户提供的数字)。您的代码应如下所示。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Try
        a = CInt(TextBox1.Text)
        b = CByte(TextBox2.Text)
        c = a * b / 100
        c = c * a * b / 100 ^ 2
        Label3.Text = "Output:" + c.ToString()

    Catch ex As ArgumentOutOfRangeException
        MessageBox.Show("Illegal Value Entered")
    Catch ex As IndexOutOfRangeException
        MessageBox.Show("Input not in valid range")
    Catch ex As Exception
        MessageBox.Show("Some exception has occured")
    End Try
End Sub

如果要在计算后清除文本框中的数字,请将这些代码行放在Label3之后。线

TextBox1.Text = False
TextBox2.Text = False

CByte文档明确指出

如果表达式超出字节子类型的可接受范围, 发生错误。

CByte(...) 构造函数将无法解析任何大于 255 的数字。

最新更新