我的用户在使用Windows3.5内置的VB.NET窗体应用程序时出现间歇性错误。显然,当他们单击窗体并重新绘制窗体时,将在MenuStrip控件上绘制一个红色的“X”,应用程序将崩溃,并显示以下错误。
以前有没有人见过这个?谁能给我指个方向?
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.ArrayList.get_Item(Int32 index)
at System.Windows.Forms.ToolStripItemCollection.get_Item(Int32 index)
at System.Windows.Forms.ToolStrip.OnPaint(PaintEventArgs e)
at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs)
at System.Windows.Forms.Control.WmPaint(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.MenuStrip.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)发布于 2008-09-05 14:33:56
是否将项目动态添加到此条带?
发布于 2008-09-05 14:45:30
您必须在代码中找出发生这种情况的位置,但它是由用于访问动态菜单的整型变量引起的。在使用菜单之前,使用if语句确保它介于0和集合大小- 1之间。此外,在创建变量的位置放置一个断点,并逐步执行代码,观察它发生了什么情况。
此外,如何使用动态菜单的代码样例也会有所帮助。
发布于 2008-09-05 15:34:01
在查看代码时,我发现每当刷新表单数据时,菜单都会被清除并重新加载。最初加载表单时,只需加载一次菜单。
我认为菜单可能在窗体被绘制的过程中被清除。你认为这可能是真的吗?
https://stackoverflow.com/questions/45924
复制相似问题