错误现象:
错误信息:索引超出范围。必须为非负值并小于集合大小。
参数名: index(开发环境:VS2010,三方控件DotNetBar)
一般在程序开发过程中项目报以上的错误,一般在程序界面是没有办法捕获异常的,不过也不是这样的问题就没有办法解决,我们可以在在项目的入口文件:Program.cs中添加一下代码:
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
MessageBox.Show(e.Exception.Message.ToString(), "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
logwrite(e);//将异常信息写入日志文件
}
这样我们就可以捕获到异常,然后可以为进一步分析异常的原因收集资料。
以下是简单的解决方法:
如果在你做程序开发时出现以上的控件问题,并且能够确定是哪一个控件存在异常,我们可以在开发工具编辑状态下打开界面的设计视图,然后在控件的属性窗口中找到赋值的属性项,随意给控件附一个值,看看编译器是否报错,如果在编辑状态下给控件赋值都会出现异常,则表明我们的控件出现了问题,这时候我们只需要将原来的控件删除,然后重新拖入新的控件则问题可以解决,需要注意的是,我们在删除原来的控件前需要将原控件的主要属性值做好备份,拖入新空间后,将原控件的属性值赋给新的控件。
如果给属性项赋值后,控件没有出现我们在运行时报出的错误,则表明我们的控件没有问题,这时,需要我们检查我们运行后动态给控件赋值的代码是否存在问题。
控件索引的问题圆满解决