2013-12-12 2 views
0

CustomControl을 만들고 싶습니다. 나는 Maximum이고 MinimumLowerValue입니다. LowerValue의 수를 MinimumMaximum 사이의 가능한 값으로 제한하고 싶습니다.사용자 지정 컨트롤에서 정수 범위를 확인하십시오.

[DefaultValue(100)] 
public int Maximum { get; set; } 

[DefaultValue(0)] 
public int Minimum { get; set; } 

[DefaultValue(0)] 
public int LowerValue { get; set; } 

LowerValue은 0.001 사이 여야합니다. TrackBar의 Value에 잘못된 숫자를 입력하면 "Invalid Property Value"라고 표시됩니다.

나는 노력이 : 난 내 양식이 코드, 비주얼 스튜디오 충돌이있는 UserControl을 넣어

private int _lowerValue; 
[DefaultValue(0)] 
public int LowerValue { 
    get { 
    return _lowerValue; 
    } 
    set { 
    if (value < Minimum) 
     throw new ArgumentOutOfRangeException("Invalid value. Value must be between " + Minimum.ToString() + " and "+Maximum.ToString()); 
    else 
     _lowerValue = value; 
    } 
} 

.

어떻게하면됩니까?

+0

그리고 충돌 할 때 Visual Studio에서 무엇이라고 말합니까? –

+0

Nothing ... "문제가 발생하여 종료해야합니다.", 문제의 해결책을 찾고 다시 시작하십시오. – fedab

+0

코드에 문제가 있다고 생각하지 않습니다. 나는 Visual Studio 2010과 Visual Studio 2012에서 이것을 시도했지만 "Property value is not valid."라는 대화 상자가 나타납니다. 그리고 내가 예상 할 수있는 충돌이 아닙니다. Visual Studio의 구성 문제가 있음을 나에게 알립니다. 수리/재설치를 시도합니다. –

답변

0

좋아 내가 그것을 가지고 : 우선은 변수없이 속성을 사용 :

내가 세트에 내가 다시 세트를 호출하고 무한 루프를 가지고 있기 때문에 좋은 생각이 아니다
public int LowerValue { 
    get { return LowerValue; } 
    set { if(valid) LowerValue = value; } 
} 

.

-> 비주얼 스튜디오 충돌

내가 위의 게시 된 코드로 변경, 그러나 또한 추락했다. 내 새 코드도 잘못되었다고 생각했지만 문제는 해결 한 후에 새로운 솔루션을 만들지 않았다는 것뿐이었습니다.

그 후 모두 효과가있었습니다. 코드에 아무런 문제가 없었습니다.

관련 문제