2013-08-21 2 views
1

UserControl에 정의 된 사용자 정의 Property에 대한 유효성 검사 코드를 추가하는 방법. 다음 코드 조각을 고려사용자 정의 속성 검증 메시지 코드는

public class Date 

{ 
    private int month = 7; // Backing store 

    public int Month 
    { 
     get 
     { 
      return month; 
     } 
     set 
     { 
      if ((value > 0) && (value < 13)) 
      { 
       month = value; 
      } 
     } 
    } 
} 

그것은 Month 값이 1과 12 사이 있는지 확인합니다,하지만 난 그것을 무효의 경우도까지 표시잘못된 메세지 입력합니다. 어떤 아이디어?

+0

이 속성에 액세스하는 장소에서이 작업을 수행 할 수 있습니다. – Sasidharan

답변

2

값이 1에서 12 사이가 아닌 경우 예를 들어 InvalidOperationException 그리고 메인 스레드에서 처리하십시오. 그리고 뭔가 같은

public int Month 
{ 
    get 
    { 
     return month; 
    } 
    set 
    { 
     if ((value > 0) && (value < 13)) 
     { 
      month = value; 
     } 
     else throw new InvalidOperationException("Invalid month"); 
    } 
} 

... textBox1_Validating이 텍스트 상자의 검증 이벤트 핸들러입니다

private void textBox1_Validating(object sender, CancelEventArgs e) 
{ 
    try 
    { 
     date.Month = Convert.ToInt32(textbox1.Text); 
    } 
    catch(InvalidOperationException ex) 
    { 
     e.Cancel = true; 
     textBox1.Select(0, textBox1.Text.Length); 

     // some message about invalid value 
    } 
} 

.