检查自定义控件中的整数范围

时间:2013-12-12 15:50:13

标签: c# user-controls

我想创建一个CustomControl。我有一个Maximum和一个Minimum以及一个LowerValue。我想将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..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崩溃。

那我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

好吧,我明白了:首先我使用了没有变量的属性:

public int LowerValue {
  get { return LowerValue; }
  set { if(valid) LowerValue = value; }
}

那不是最好的主意,因为我在集合中再次调用集合并且有一个无限循环。

- &GT; Visual Studio崩溃

我将其更改为我上面发布的代码,但它也崩溃了。我认为我的新代码也错了,但唯一的问题是我修复后没有创建新的解决方案。

之后一切顺利。代码没有任何问题。