【问题标题】:Hospital Charges Visual Basic医院收费 Visual Basic
【发布时间】:2016-05-18 04:19:28
【问题描述】:

我正在为学校制作一个视觉基础项目,用于计算您住院期间的总数。它在大多数情况下都有效,但是当输入负数并且我没有收到该消息时,我应该会收到一条错误消息。这是我现在拥有的编码:

Public Class Form1

Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
    'close form
    Me.Close()

End Sub

Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
    'clear form
    txtLab.Clear()
    txtMedication.Clear()
    txtPhysical.Clear()
    txtStay.Clear()
    txtSurgical.Clear()
    txtStay.Focus()
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    'class level declaration
    Const DayRate As Decimal = 350D 'cost per day


    'declare variables
    Dim Physical As Decimal
    Dim Surgical As Decimal
    Dim Lab As Decimal
    Dim Medication As Decimal
    Dim Stay As Decimal
    Try
        'Copy the scores into the variables
        Stay = CDec(txtStay.Text) * DayRate
        Medication = CDec(txtMedication.Text)
        Surgical = CDec(txtSurgical.Text)
        Lab = CDec(txtLab.Text)
        Physical = CDec(txtPhysical.Text)
    Catch
        MessageBox.Show("Please enter numeric values")
        Return

        'Find out if box enteries are negative or not
        If Convert.ToDecimal(Lab) < 0 Then
            MessageBox.Show("No Negative Numbers", "Try Agian")
            Return
            txtLab.SelectAll()
        ElseIf Convert.ToDecimal(Medication) < 0 Then
            MessageBox.Show("No Negative Numbers", "Try Agian")
            Return
            txtMedication.SelectAll()
        ElseIf Convert.ToDecimal(Surgical) < 0 Then
            MessageBox.Show("No Negative Numbers", "Try Agian")
            Return
            txtSurgical.SelectAll()
        ElseIf Convert.ToDecimal(Physical) < 0 Then
            MessageBox.Show("No Negative Numbers", "Try Agian")
            Return
            txtPhysical.SelectAll()
        ElseIf Convert.ToDecimal(Stay) < 0 Then
            MessageBox.Show("No Negative Numbers", "Try Agian")
            Return
            txtStay.SelectAll()
        End If
    End Try
End Sub
Function CalcStayCharges() As Decimal
    CalcStayCharges = (CDec(txtStay.Text) * 350)
End Function
Function CalcMiscCharges() As Decimal
    CalcMiscCharges = CDec(txtMedication.Text) + CDec(txtLab.Text) + CDec(txtPhysical.Text) + CDec(txtSurgical.Text)
End Function
Function CalctotalCharges() As Decimal
    CalctotalCharges = (CalcStayCharges() + CalcMiscCharges())
End Function

Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
    'calculates total of stay
    Dim decTotal As Decimal

    decTotal = CalctotalCharges()

    lblTotal.Text = decTotal.ToString("c")
End Sub
End Class

【问题讨论】:

  • VBA 和 VB.Net 是两种不同的语言,即使它们看起来很相似。请用正确的标签标记您的问题,以便合适的人看到它
  • 检查负数的代码在Form的Load事件处理程序中;它会在表单加载时执行一次,然后在使用 TextBoxes 中的任何内容之前执行。您需要在单击计算按钮时验证文本框的内容。
  • 非常感谢。这就像一个魅力

标签: vb.net


【解决方案1】:

Catch 子句中的代码不会执行,因为没有发生异常。您应该将 If.. Else.. 语句移到 Catch 子句之前。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多