程序崩溃Visual Basic

时间:2015-06-02 18:43:12

标签: vb.net vb6 basic

我在Visual Basic中编程,我创建了一个贷款计算器程序。我几乎把所有东西都纠正了,它的工作原理和操作方式几乎都是我想要的。

到目前为止,这是我的代码:

Public Class Form1

Private MinAmt As Decimal = 1000
Private MaxAmt As Decimal = 200000
Private Drate As Decimal
Private Loan As Decimal

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    '== Load the Rate and Terms combo, then 'click Reset
    For r As Decimal = 0 To 0.1475 Step 0.0025
        '== Add each successive value to the combo list
        cbxRate.Items.Add(Format(r, "00.00%"))
    Next
    For t As Byte = 12 To 120 Step 6
        cbxTerm.Items.Add(Format(t, "00"))
    Next
    btnReset.PerformClick()
End Sub

Private Sub btnReset_Click(sender As Object, e As EventArgs) Handles btnReset.Click
    '== Set the defaults, and clear my prior answers
    cbxRate.Text = "06.00%"
    cbxTerm.Text = "36"
    tbxLoan.Text = "10,000"
    lblPayment.Text = ""
End Sub

Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
    '== Validate the loan amount (number 1,000 - 200,000);

    If IsNumeric(tbxLoan.Text) AndAlso tbxLoan.Text >= MinAmt AndAlso tbxLoan.Text <= MaxAmt Then
        Loan = tbxLoan.Text
    Else
        MessageBox.Show("Error invalid value")
        tbxLoan.Focus()
        tbxLoan.SelectAll()
    End If

    '== Calculate Monthly Payment as PMT(monthly decimal rate, term in months, minus amount)
    lblPayment.Text = Pmt(cbxRate.Text.Replace("%", "") / 1200, cbxTerm.Text, -tbxLoan.Text)

    '== Display formatted as money: FormatCurrency(blah blah blah)
    lblPayment.Text = FormatCurrency(lblPayment.Text, 2)
End Sub

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

End Sub

Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    '== Confirm he means it, else cancel attempt to close.
    If MessageBox.Show("Do you really want to exit?", "Close", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
    Else
        e.Cancel = True
    End If
End Sub

结束班

我试图发布我的节目图片,这样可能会更容易,但显然我没有足够的声望点,但是我会尽力解释我能做的最好的事情。

我想消除某人不小心将一封信作为价值出现在&#34;输入贷款金额&#34;空间。现在,如果我要写一封信&#34; U&#34;在&#34;输入贷款金额&#34;它会弹出一个错误(这就是我想要的),但它也会使程序崩溃(我不想要的)。

希望这是有道理的。有人能指出我正确的方向吗?我还是Visual Basic的新手。

谢谢!

3 个答案:

答案 0 :(得分:1)

这是因为您继续计算输入是否有效。

输入无效后使用Return退出该功能。

Else
    MessageBox.Show("Error invalid value")
    tbxLoan.Focus()
    tbxLoan.SelectAll()
    Return
End If

答案 1 :(得分:0)

或者只是将计算移到If语句

Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click

    '== Validate the loan amount (number 1,000 - 200,000);
    If IsNumeric(tbxLoan.Text) AndAlso tbxLoan.Text >= MinAmt AndAlso tbxLoan.Text <= MaxAmt Then

        Loan = tbxLoan.Text

        '== Calculate Monthly Payment as PMT(monthly decimal rate, term in months, minus amount)

        lblPayment.Text = Pmt(cbxRate.Text.Replace("%", "") / 1200, cbxTerm.Text, -tbxLoan.Text)

        '== Display formatted as money: FormatCurrency(blah blah blah)
        lblPayment.Text = FormatCurrency(lblPayment.Text, 2)

    Else
        MessageBox.Show("Error invalid value")
        tbxLoan.Focus()
        tbxLoan.SelectAll()
    End If

End Sub

答案 2 :(得分:0)

您仍在执行其余代码。你需要退出那个街区。利用Return语句..

Else
    MessageBox.Show("Error invalid value")
    tbxLoan.Focus()
    tbxLoan.SelectAll()
    Return
End If
相关问题