Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class Form1
- Private Sub ImageClicked(ByVal sender As Object, ByVal e As System.EventArgs) Handles picAuto.Click _
- , picHome.Click
- Dim picImageClicked As PictureBox = sender
- Me.grpWhatToKnow.Visible = True
- Me.btnNewLoan.Visible = True
- Me.btnCalculate.Visible = True
- Me.btnCalculate.Enabled = False
- Me.lstTerm.Items.Clear()
- Select Case picImageClicked.Tag
- Case "auto"
- Me.lstTerm.Items.Add("2 years")
- Me.lstTerm.Items.Add("3 years")
- Me.lstTerm.Items.Add("5 years")
- Me.lstTerm.Items.Add("7 years")
- Case "home"
- Me.lstTerm.Items.Add("10 years")
- Me.lstTerm.Items.Add("15 years")
- Me.lstTerm.Items.Add("30 years")
- End Select
- End Sub
- Private Sub btnNewLoan_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnNewLoan.Click
- Me.grpWhatToKnow.Visible = False
- Me.radHowMuch.Checked = False
- Me.radPaymentSize.Checked = False
- Me.lblTermPrompt.Visible = False
- Me.lstTerm.Visible = False
- Me.lblPrincipalOrPaymentPrompt.Visible = False
- Me.txtPrincipalOrPayment.Visible = False
- Me.lblRatePrompt.Visible = False
- Me.cboRate.Visible = False
- Me.btnNewLoan.Visible = False
- Me.btnCalculate.Visible = False
- Me.lblResult.text = Nothing
- End Sub
- Private Sub radPaymentSize_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles radPaymentSize.Click _
- , radHowMuch.Click
- Dim radOptionClicked As RadioButton = sender
- Me.lblTermPrompt.Visible = True
- Me.lstTerm.Visible = True
- Select Case radOptionClicked.Tag
- Case "how much"
- Me.lblPrincipalOrPaymentPrompt.Text = "Desired Payment:"
- Case "payment size"
- Me.lblPrincipalOrPaymentPrompt.Text = "Loan Ammount:"
- End Select
- Me.lblPrincipalOrPaymentPrompt.Visible = True
- Me.txtPrincipalOrPayment.Visible = True
- Me.txtPrincipalOrPayment.Text = Nothing
- Me.lblRatePrompt.Visible = True
- Me.cboRate.Visible = True
- Me.cboRate.Text = Nothing
- End Sub
- Private Sub lstTerm_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstTerm.SelectedIndexChanged _
- , txtPrincipalOrPayment.TextChanged, cboRate.SelectedIndexChanged, cboRate.TextChanged
- Me.lblResult.text = Nothing
- Me.btnCalculate.Enabled = False
- If Me.txtPrincipalOrPayment.Text <> Nothing And _
- Me.cboRate.Text <> Nothing Then
- Me.btnCalculate.Enabled = True
- End If
- End Sub
- Private Sub btnCalculate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCalculate.Click
- Dim term As Integer
- Dim principalOrPayment As Decimal
- Dim rate As Double
- Dim result As Decimal
- Dim validData As Boolean
- term = Val(Me.lstTerm.SelectedItem)
- GetDollarAmount(Me.txtPrincipalOrPayment, principalOrPayment, validData)
- If validData Then
- GetPercentAmount(Me.cboRate, rate, validData)
- End If
- If validData Then
- If Me.radHowMuch.Checked Then
- result = PV(rate / 12, term * 12, -principalOrPayment)
- Me.lblResult.Text = "Loan Ammount: " & Format(result, "Currency")
- Else
- result = Pmt(rate / 12, term * 12, -principalOrPayment)
- Me.lblResult.Text = "Payment Ammount: " & Format(result, "Currency")
- End If
- Else
- Me.lblResult.Text = "Data not valid."
- End If
- End Sub
- Sub GetDollarAmount(ByVal txtUserData As TextBox, ByRef dollars As Decimal, _
- ByRef isValid As Boolean)
- Dim testAmount As String
- isValid = False
- If txtUserData.Text <> Nothing Then
- testAmount = txtUserData.Text
- testAmount = testAmount.Replace("$", "")
- testAmount = testAmount.Replace(",", "")
- If IsNumeric(testAmount) Then
- dollars = Val(testAmount)
- isValid = True
- End If
- End If
- End Sub
- Sub GetPercentAmount(ByVal cboUserData As ComboBox, ByRef percent As Double, _
- ByRef isValid As Boolean)
- Dim testAmount As String
- isValid = False
- If cboUserData.text <> Nothing Then
- testAmount = cboUserData.text
- testAmount = testAmount.TrimEnd("%")
- If IsNumeric(testAmount) Then
- If Val(testAmount) / 100 Then
- percent = Val(testAmount) / 100
- Else
- percent = Val(testAmount)
- End If
- isValid = True
- End If
- End If
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment