以下のコードは、テキストボックスを使用してBMIを計算するプログラムです。ただし、テキストボックスの1つをクリアすると例外がスローされ、プログラムがフリーズするという問題があります。私は誰もがこれを防ぐ方法についての答えを持っているのだろうかと思っていた。私はすでに0と1に変数を設定して、それが問題かどうかを確認しようとしましたが、そうではないようです。ビジュアル基本空のテキストボックス例外をスローする
Private Sub tboxWeight_TextChanged(sender As Object, e As EventArgs) Handles tboxWeight.TextChanged
Weight = 0
Weight = Convert.ToInt64(tboxWeight.Text)
End Sub
Private Sub tboxHFeet_TextChanged(sender As Object, e As EventArgs) Handles tboxHFeet.TextChanged
Height_feet = 0
Height_feet = Convert.ToInt64(tboxHFeet.Text)
Get_BMI(1)
End Sub
Private Sub tboxHInch_TextChanged(sender As Object, e As EventArgs) Handles tboxHInch.TextChanged
Height_Inches = 0
Height_Inches = Convert.ToInt64(tboxHInch.Text)
Get_BMI(1)
End Sub
Private Sub tboxAge_TextChanged(sender As Object, e As EventArgs) Handles tboxAge.TextChanged
Age = Convert.ToDouble(tboxAge.Text)
End Sub
Function Get_BMI(ByVal j As Integer) As Double
BMI = (Weight/(Height_Inches + (Height_feet * 12)^2) * 703)
tboxBMI.Text = Convert.ToString(BMI)
Exit Function
End function
*備考* [Convert.ToXxxx上のMSDN(列)]のセクション(https://msdn.microsoft.com/en-us/library/0zahhahw(V = vs.110)の.aspxを参照してください) - 変換が失敗したときに例外を処理したくない場合は、代わりに 'TryParse'を使います。 –