2012-03-04 5 views
2

의 텍스트 상자에 음수를 입력하면 사용자의 숫자 값을 수락해야합니다. double.parse를 사용하여 텍스트 상자의 문자열을 double로 변환했습니다. 그러나 디버깅하는 동안 마이너스 기호 (-)를 입력하자마자 컴파일러에서 오류를 표시합니다. 오류 :내 프로그램 중 하나에서 C#

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

코드는 다음과 같습니다 당신이 textBox1_TextChanged에서 그것을 할 수 있기 때문에

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

예외는 즉시로 트리거됩니다 입력됩니다 ... – code4life

답변

8

이것은 : 이것은 double, 그것은 그 단계에서 불완전 할 수 있습니다 구문 분석하는 데 너무 빨리이다.

최종 사용자가 엔트리가 완료되었다고 생각하면 시도해보십시오 (예 : 포커스가 끊어진 이벤트 핸들러). 또는 double.TryParse 메서드를 사용하여 부분 항목의 예외를 피할 수 있습니다. "-"

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

또는이 너무 작동합니다 ...

관련 문제