我已经编写并测试了一个WinForms应用程序,一切都在我的机器上工作正常(陈词滥调,我知道).当我创建一个安装项目并将其安装在同事的机器上时,他收到以下消息:
************** Exception Text ************** System.IndexOutOfRangeException: There is no row at position 0. at System.Data.RBTree`1.GetNodeByIndex(Int32 userIndex) at System.Data.RBTree`1.get_Item(Int32 index) at System.Data.DataRowCollection.get_Item(Int32 index) at MyApp.MainForm.MainForm_Load(Object sender, EventArgs e) at System.Windows.Forms.Form.OnLoad(EventArgs e) at System.Windows.Forms.Form.OnCreateControl() at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) at System.Windows.Forms.Control.CreateControl() at System.Windows.Forms.Control.WmShowWindow(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.ContainerControl.WndProc(Message& m) at System.Windows.Forms.Form.WmShowWindow(Message& m) at System.Windows.Forms.Form.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
在处理像这样的例外情况时,我会承认我是初学者.该文本对我来说没有多大意义,我不确定调试它的最佳方法,因为我无法在我的机器上发生错误.
任何人都可以告诉问题是什么,或建议我调试这个问题的最佳方法?任何帮助是极大的赞赏!
显然,您DataRowCollection
在主窗体加载事件处理程序上使用了一个对象,并且此DataRowCollection
对象为空(即不包含任何行).表单加载事件处理程序似乎假设它不会为空.
我建议您MainForm_Load
通过代码在左大括号和步骤(F10或F11 )上设置断点(F9),直到找到代码尝试使用的位置DataRowCollection
.