Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NumericUpDown中奇怪的ArgumentOutOfRangeException_C#_Winforms - Fatal编程技术网

C# NumericUpDown中奇怪的ArgumentOutOfRangeException

C# NumericUpDown中奇怪的ArgumentOutOfRangeException,c#,winforms,C#,Winforms,在我当前的项目中,我使用NumericUpDowns来显示一些值。 一切正常,但有一行代码抛出了ArgumentOutOfRangeException,这是以下第三行代码: verBox.SelectedIndex = (int)currentConfig.Version; //enum, casting to int startIndexBox.Value = currentConfig.StartIndex + 1; intervalBox.Value = currentConfig.Int

在我当前的项目中,我使用
NumericUpDowns
来显示一些值。 一切正常,但有一行代码抛出了
ArgumentOutOfRangeException
,这是以下第三行代码:

verBox.SelectedIndex = (int)currentConfig.Version; //enum, casting to int
startIndexBox.Value = currentConfig.StartIndex + 1;
intervalBox.Value = currentConfig.Interval;
因此,verBox是一个组合框,startIndexBox和intervalBox是一个数字向上下拉框。 执行此代码时,currentConfig的字段具有以下值:

currentConfig.Version = 2
currentConfig.StartIndex = 0
currentConfig.Interval = 700
现在奇怪的是异常(在代码的第三行中抛出): 它表示值2无效,应该介于
最小值
最大值
之间
首先,值不是2,而是700。
第二件事是,间隔框。最小值是0,最大值是10k

此外,VisualStudio不会因此异常而中断,但程序以
代码-1073741819(0xc0000005)“访问冲突”
结束。如果我将所有异常设置为在调试设置中抛出,它将中断,并且我可以看到currentConfig.Interval是700,实际上没有理由抛出此异常。 我观察到的另一件奇怪的事情是,如果我用try/catch括住代码的最后一行,那么在它上面的一行就会抛出相同的异常

以前有人经历过类似的事情吗?或者有什么办法解决这个问题


编辑:如果我在引发异常的行上设置了断点,则无论如何都会引发异常。

通过
If
检查验证
currentConfig
是否为空。如果不为空,请验证
版本
开始索引
间隔
的属性是否包含适用于数字控件的预期值


还要验证数值控件是否有效,是否在页面上,是否准备在要加载它们的点处接受值。

好的,我现在解决了问题:Visual Studio将异常标记在错误的行上。问题是,startIndexBox.Value得到的索引确实超出范围,导致出现异常。

尝试清理->重建->运行。没有解决问题:/A带有访问冲突的炸弹几乎总是有一个损坏的GC堆。这意味着你不能再对合理的行为进行推理了。堆已损坏,任何事情都有可能发生。@HansPassant那么我能做些什么呢?当visual studio执行这些操作时,我会重新启动它,如果这不能解决问题,我会将项目文件(*.cs)复制到新项目中。希望这有帮助!我没有包括的是,我已经验证了currentConfig是否为null。另外,正如我在问题中所写的,每个值都应该是完美的,并且控件应该能够毫无问题地加载它们。@Chester“每个值都应该是完美的?”:-)@Chester TY,我已经使用过这些控件和它(至少对我来说)这是一个单参数关闭的情况,奇怪的是控制无法以更好的方式处理。考虑到这一点,您关于它在调试器中的一句话,也就是上面的一行,就是为什么我写了对检查值的响应。不管怎样,我很高兴这件事解决了。