2017-01-07 3 views
0

私は、平行四辺形の面積を計算するさまざまな小さなプログラムを持つwpfアプリを持っています。私は、ユーザがdouble.MaxValueより大きい高さまたは幅のボックスに値を入力すると、エラーメッセージが表示されるようにエラー処理を追加しています。エラーメッセージと共に返すことができるように、例外をトリガーしたテキストボックス入力を特定するにはどうすればよいですか? HeightとWidthボックスは重要な場合、User Controlにあります。例外を投げたものを特定しますか?

private void AreaOfParallelogramCalcBtn_Click(object sender, RoutedEventArgs e) 
{ 
    if (Convert.ToDouble(AreaOfParallelogramHeightTxtBox.Text) > double.MaxValue == false || (Convert.ToDouble(AreaOfParallelogramWidthTxtBox.Text) > double.MaxValue == false)) 
    { 
     MessageBox.Show("Seriously? That is a pretty big number. Please try again."); 
    } 
    else 
    { 
     AreaOfParallelogramResultTxtBox.Text = 
     CalculateAreaOfParallelogram.Calculate(Convert.ToDouble(AreaOfParallelogramHeightTxtBox.Text), 
     Convert.ToDouble(AreaOfParallelogramWidthTxtBox.Text)).ToString(); 
    } 
} 
+0

だけで両方のチェックをチェックし、各テキストボックスのメッセージを示す個別の代わりに、論理和の何が問題になっているのですか? –

+0

@EugenePodskal私は全くそれを見落としたとは思えません。ありがとうございました。私はこのすべてに全く新しいです。 –

+1

サイドノートですが、 'ToDouble(...)> double.MaxValue'は決して' true'にはなりません。 –

答えて

0

これはおそらくこれを実行する最良の方法ではありませんが、これが私がやり遂げた結果です。例外の

private void AreaOfParallelogramCalcBtn_Click(object sender, RoutedEventArgs e) 
    { 
     if (Convert.ToDouble(AreaOfParallelogramHeightTxtBox.Text) > 25000000) 
     { 
      MessageBox.Show($"Height input out of range. Height must be less than 25,000,000\n{Convert.ToDouble(AreaOfParallelogramHeightTxtBox.Text):n0} is a pretty big number. Please try again.", "*WARNING*", MessageBoxButton.OK, MessageBoxImage.Warning); 
     } 
     else if (Convert.ToDouble(AreaOfParallelogramWidthTxtBox.Text) > 25000000) 
     { 
      MessageBox.Show($"Width input out of range. Width must be less than 25,000,000\n{Convert.ToDouble(AreaOfParallelogramWidthTxtBox.Text):n0} is a pretty big number. Please try again.", "*WARNING*", MessageBoxButton.OK, MessageBoxImage.Warning); 
     } 
     else 
     { 
      AreaOfParallelogramResultTxtBox.Text = 
      CalculateAreaOfParallelogram.Calculate(Convert.ToDouble(AreaOfParallelogramHeightTxtBox.Text), 
      Convert.ToDouble(AreaOfParallelogramWidthTxtBox.Text)).ToString(CultureInfo.InvariantCulture); 
     } 
    } 
0

使用ソースは

try 
    { 
    .... 
    } 
    Catch(Exception ex) 
    { 
    MessageBox.Show(ex.Source) 
    } 
関連する問題