我正在学习 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
正如 @jmcilhinney 在评论中所说,你的空
Catch
块隐藏了问题。删除它或用这个替换它:
Catch ex As Exception
lblBajo.Text = ex.Message
lblBajo.Visible = True
End Try
程序不起作用的原因是您没有检查文本框是否包含可以转换为
Decimal
类型的值。我还会删除以下行:
decTotal = CDec(lblTotal.Text)
因为它不是必需的,并且可能是错误的来源。