如何保护自己免受argumentOutOfRangeException的影响

时间:2011-07-20 16:03:57

标签: c# binding c#-2.0 numericupdown

我有numericUpDown控制minValue - 0 maxValue - 100。

我创建了对此控件的绑定。

如果值更改为101将是异常,这是我不需要的,我想重视的是没有特别提及。 怎么做?

更新

BindinHelper.BindField(this.nUpDownExecArea, "Value", TempConfigClass, "ExecArea");

BindField:

public static void BindField(Control control, string propertyName,
               object dataSource, string dataMember)
        {
            Binding bd;

            for (int index = control.DataBindings.Count - 1; (index == 0); index--)
            {
                bd = control.DataBindings[index];
                if (bd.PropertyName == propertyName)
                    control.DataBindings.Remove(bd);
            }
            control.DataBindings.Add(propertyName, dataSource, dataMember, false, DataSourceUpdateMode.OnPropertyChanged);
        }

我设置TempConfigClass.ExecArea = 99999;

不会导致错误,但是当我转到选项卡(tabcontrol)时,错误似乎是numericUpDown

1 个答案:

答案 0 :(得分:3)

argumentOutOfRangeException告诉您收到的参数是例外。但是,如果您的应用程序的设计方式需要某些参数,那么有两种方法可以实现:

推荐方式 - 只需检查绑定发生之前的值,如果超出范围

,则阻止它继续进行

- 使用try / catch块仅捕获特定异常并相应地处理它