错误消息TryParse

时间:2015-01-16 02:40:31

标签: vb.net visual-studio-2012 calculator tryparse

我正在努力使用我的TryParse方法。该计划是计算总降雨量和平均降雨量。用户以英寸为单位输入每个月。总计是准确的,但单击计算时会弹出错误消息“输入数值”。该程序还用符号或字母计算,我将如何在此时停止它。

Public Class Korszun

    Private Sub Korszun_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        MessageBox.Show("Please enter each month's rainfall average (ex: 1.11 inches)")
    End Sub

    Private Sub txtJuly_TextChanged(sender As Object, e As EventArgs) Handles txtJuly.TextChanged

    End Sub

    Private Sub txtOctober_TextChanged(sender As Object, e As EventArgs) Handles txtOctober.TextChanged

    End Sub

    Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
        'declare the variables
        Dim intCount As Integer = 0
        Dim dblAverageRainfall As Double
        Dim dblTotalRainfall As Double
        Dim dblInches As Double

        'create txtbox variable
        'go through each TextBox control in the Groupbox and add them all up
        For Each txtBox As TextBox In Me.GroupBox1.Controls.OfType(Of TextBox)()

            If Not Double.TryParse(txtBox.Text, dblInches) Then
                MessageBox.Show("Please enter numerical values only.")

            ElseIf CDbl(txtBox.Text) < 0 Then
                MessageBox.Show("Please enter all positive numbers.")

            ElseIf TypeOf txtBox Is TextBox Then
                'add the total value of rainfall and put it in the decTotalRainfall variable
                dblTotalRainfall += CDbl(txtBox.Text)
            End If
        Next

        'get the average
        dblAverageRainfall = dblTotalRainfall / 12

        'show the results in the labels
        lblTotal.Text = dblTotalRainfall.ToString("n2")
        lblAverage.Text = dblAverageRainfall.ToString("n5")
    End Sub

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

    End Sub

    Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
        'Clear the Textboxes
        txtJanuary.Clear()
        txtFebruary.Clear()
        txtMarch.Clear()
        txtApril.Clear()
        txtMay.Clear()
        txtJune.Clear()
        txtJuly.Clear()
        txtAugust.Clear()
        txtSeptember.Clear()
        txtOctober.Clear()
        txtNovember.Clear()
        txtDecember.Clear()
        lblAverage.Clear()
        lblTotal.Clear()
        'Set focus
        txtJanuary.Focus()

    End Sub

    Private Sub GroupBox1_Enter(sender As Object, e As EventArgs) Handles GroupBox1.Enter

    End Sub

    Private Sub txtAverage_TextChanged(sender As Object, e As EventArgs) Handles lblAverage.TextChanged

    End Sub
End Class

0 个答案:

没有答案