2012-02-23 2 views
0

winforms 프로젝트에서 ErrorProvider 컨트롤을 사용하고 있습니다. 대부분의 경우 작동합니다 (약간의 통증이 있지만).하나의 호출에서 ErrorProvider가 작동하지만 다른 호출에서는 작동하지 않습니까?

이제 동일한 유효성 검사기를 실행하는 2 개의 컨트롤이 있습니다. 유효성 검사기에서 각 컨트롤을 살펴보고 잘못된 경우 오류를 설정합니다. 한 통화는 작동하지만 다른 통화는 작동하지 않습니다. 어떻게 이럴 수있어? 예외는 발생하지 않습니다.

코드 : 당신이 endHour> = 24 만 endMin < (60)이 코드를 호출하는 경우

if (endHour > 12) 
    { 
    if (endHour >= 24) 
    { 
     //Fails without error 
     errorProvider1.SetError(lblEnd, "You cannot enter more than 24 hours in a day"); 
    } 
    else 
    { 
     txtEndHour.ForeColor = Color.Blue; 
    } 
    } 
    else 
    { 
     errorProvider1.SetError(lblEnd, ""); 
    } 

if (endMin >= 60) 
{ 
    //Always works. 
    errorProvider1.SetError(lblEnd, "You can't enter more than 60 minutes in an hour."); 
} 
else 
{ 
    errorProvider1.SetError(lblEnd, ""); 
} 
+0

txtEndhour와 lblEnd를 모두 사용해야합니다. 이 코드에서 두 개의 다른 컨트롤을 처리하는 부분은 어디에 있습니까? –

+0

@HansPassant - 다른 컨트롤에 유효성 검사기를 표시하기 위해 하나의 컨트롤 만 유효성 검사를해서는 안되는 것은 사실이 아닙니다. 여러 위치에서 작업하고 있습니다. 나는 여기에 어리석은 논리 오류가있다. – MAW74656

답변

1

당신이 errorProvider을 지 웁니다 최종 다른 사람에에 allways 떨어질 것이다.
시간 부분이 잘못되었을 때 두 가지 유효성 검사 (더 나은)를 구분하거나 반품해야합니다.

+0

- 네, 바보입니다. 나는 이것을 게시하는 모든 문제에 갔다가 집에 갔다가 저녁 식사를하는 동안 나는 "오하이오! 고마워, 네 말이 맞다. – MAW74656

+0

네, 이런 일이 저에게도 일어납니다. 때때로 휴식을 취하는 것이 좋습니다! :-) – Steve

관련 문제