2016-04-05 11 views
1

3つの異なる値(3つの異なるテキストボックス)の乗算を実行しようとしています。コードはボタンに追加されるので、ユーザーがクリックすると3つの値がすべて計算されます。Visual Studioで3つのテキストボックスの乗算を実行しようとしています

私はコードをデバッグしてもエラーは表示されませんが、計算されず、結果がテキストボックス 'total'に表示されません。ここで

はコードです:

private void button1_Click(object sender, EventArgs e) 
    { 
     Int32 val1 = Convert.ToInt32(amount.Text); 
     Int32 val2 = Convert.ToInt32(length.Text); 
     Int32 val3 = Convert.ToInt32(width.Text); 
     Int32 val4 = val1 * val2 * val3; 
     total.Text = Convert.ToString(val4); 
    } 

は、事前にご協力いただきありがとうございます。

+2

は、あなたが設定されていますブレークポイントを取得し、他の基本的なデバッグを行って、メソッドがヒットしていることを確認してください。 – Kritner

答えて

1

Int32クラスを使用する必要はありません。読みやすく、標準化されているため、intを使用してください。

また、これはこれは、テキストボックスにのみこれがそうでないならば、あなたの代わりにTryParseを使用することができ、それらの中に数字の入力を有することができると仮定している。この

int val1 = int.Parse(amount.Text); 
int val2 = int.Parse(length.Text); 
int val3 = int.Parse(width.Text); 
int val4 = val1 * val2 * val3; 
total.Text = val4.ToString(); 

のようであるべき、算術に役立つかもしれません。

int val1 = 0; 
int val2 = 0; 
int val3 = 0; 
int val1 = if(!int.TryParse(amount.Text, out val1)) return; // could show MessageBox 
int val2 = if(!int.TryParse(length.Text, out val2)) return; // could show MessageBox 
int val3 = if(!int.TryParse(width.Text, out val3)) return; // could show MessageBox 
int val4 = val1 * val2 * val3; 
total.Text = val4.ToString(); 
+0

数値の代わりに文字列を入力すると、Int.Parseは失敗します。ところで、なぜこのコードでOPとは異なる結果が得られるのでしょうか? – Steve

+0

このメソッドはそれを処理すべきではなく、代わりにtextBoxesがデータ入力を処理する必要があります。 –

+0

ありがとう、それは多くを助けた – Truex

4

TextBoxコントロール内の文字列値を実際に解析して、必要な操作を実行できるようにする必要があります。

は、一般的に最も安全なアプローチは、解析が成功したかどうかを示すブール値を返しますし、それが指定された変数に、新たに解析された値を格納しますInt32.TryParse()方法を使用することになるだろう:

private void button1_Click(object sender, EventArgs e) 
{ 
    // Define your variables 
    int amount, length, width; 

    if(!Int32.TryParse(amount.Text, out amount)) 
    { 
     // Amount was not an integer, do something here 
    } 

    if(!Int32.TryParse(length.Text, out length)) 
    { 
     // Length was not an integer, do something here 
    } 

    if(!Int32.TryParse(width.Text, out width)) 
    { 
     // Width was not an integer, do something here 
    } 

    // At this point, you can calculate your result 
    total.Text = Convert.ToString(length * width * amount); 
} 
関連する問題