我想创建一个CustomControl。我有一个Maximum
和一个Minimum
以及一个LowerValue
。我想将LowerValue
的数量限制为Minimum
和Maximum
之间的可能值。
[DefaultValue(100)]
public int Maximum { get; set; }
[DefaultValue(0)]
public int Minimum { get; set; }
[DefaultValue(0)]
public int LowerValue { get; set; }
LowerValue
应介于0..100之间。如果您在TrackBar的Value
中键入错误的数字并且显示“无效的属性值”,我希望如此。
我试过了:
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;
}
}
当我在表单中放入带有此代码的UserControl时,Visual Studio崩溃。
那我怎么能这样做?
答案 0 :(得分:0)
好吧,我明白了:首先我使用了没有变量的属性:
public int LowerValue {
get { return LowerValue; }
set { if(valid) LowerValue = value; }
}
那不是最好的主意,因为我在集合中再次调用集合并且有一个无限循环。
- &GT; Visual Studio崩溃
我将其更改为我上面发布的代码,但它也崩溃了。我认为我的新代码也错了,但唯一的问题是我修复后没有创建新的解决方案。
之后一切顺利。代码没有任何问题。