我已经尽力让它发挥作用,我已经尝试了我所知道的一切,但仍然无法弄清楚

问题描述 投票:0回答:1

我正在学习 VB,练习之一是编写一个计算食物脂肪的程序。

但是当我运行我的程序时它什么也没做。并且编译时没有错误。

我使用的代码如下:

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnCalcular.Click
        Dim decCal As Decimal
        Dim decGrasa As Decimal
        Dim decTotal As Decimal

        Try
            decCal = CDec(txtCal.Text)
            decGrasa = CDec(txtGrasa.Text)
            decTotal = CDec(lblTotal.Text)

            decTotal = (decGrasa / decCal)
            lblTotal.Text = decTotal.ToString("p")


            If decCal < decGrasa Then
                lblBajo.Text = "La cantidad de grasa no puede ser mayor que el total de calorías"
                lblBajo.Visible = True
            ElseIf decTotal < 30 Then
                lblBajo.Text = "Este alimento es bajo en grasa"
                lblBajo.Visible = True
            ElseIf decTotal >= 30 Then
                lblBajo.Visible = False
            End If
                                          
        Catch

        End Try



    End Sub

    Private Sub btnBorrar_Click(sender As Object, e As EventArgs) Handles btnBorrar.Click
        txtCal.Clear()
        txtGrasa.Clear()
        lblTotal.Text = String.Empty

    End Sub

    Private Sub btnCerrar_Click(sender As Object, e As EventArgs) Handles btnCerrar.Click
        Me.Close()
    End Sub
End Class
vb.net visual-studio-2017
1个回答
0
投票

正如 @jmcilhinney 在评论中所说,你的空

Catch
块隐藏了问题。删除它或用这个替换它:

Catch ex As Exception
  lblBajo.Text = ex.Message
  lblBajo.Visible = True
End Try

程序不起作用的原因是您没有检查文本框是否包含可以转换为

Decimal
类型的值。我还会删除以下行:

decTotal = CDec(lblTotal.Text)

因为它不是必需的,并且可能是错误的来源。

© www.soinside.com 2019 - 2024. All rights reserved.