2012-03-04 4 views
2

のテキストボックスに負の数を入力すると、ユーザーからの数値を受け入れる必要があります。私はdouble.parseを使って、テキストボックスの文字列をdoubleに変換しました。しかし、デバッグ中にマイナス記号( - )を入力すると、コンパイラはエラーを表示します。エラーは次のとおりです。私のプログラムのC#

FORMAT EXCEPTION IS UNHANDLED 
Input string was not in a correct format. 

コードは次のとおりです。

private void textBox1_TextChanged(object sender, EventArgs e) 
    { 
     p1 = double.Parse(textBox1.Text); 
    } 
+0

例外は、すぐにトリガされます入力します... – code4life

答えて

8

あなたはtextBox1_TextChangedでそれを行うためです:これはあまりにも早くdoubleを解析することです、それはその段階で不完全な場合があります。

エンドユーザーが入力が完了したと思ったら、たとえば、フォーカスが失われたイベントハンドラでそれを実行してみてください。または、double.TryParseメソッドを使用して、部分的なエントリの例外を回避できます。 「 - 」

0
private void textbox1_TextChanged(object sender, EventArgs e) 
    { 
     if (textbox1.Text != "" & textbox1.Text != "-") 
     { 
      p1 = double.Parse(textbox1.Text); 
     } 
    } 

か、これはあまりにも動作します...

関連する問題