在处置时object
of a form
从另一个exception
正在投掷像Parameter is not valid
访问第二种形式的代码
Assembly X = Assembly.LoadFile(Application.StartupPath + "\\Test.dll");
Form frminv = (Form)X.CreateInstance("Test.Form1");
frminv.Dispose();
这是表单处理方法(来自Designer.cs)
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);// exception is thrown from here
}
这是堆栈跟踪
at System.Drawing.Image.get_FrameDimensionsList()
at System.Drawing.ImageAnimator.CanAnimate(Image image)
at System.Drawing.ImageAnimator.ImageInfo..ctor(Image image)
at System.Drawing.ImageAnimator.Animate(Image image, EventHandler onFrameChangedHandler)
at System.Windows.Forms.PictureBox.Animate(Boolean animate)
at System.Windows.Forms.PictureBox.Animate()
at System.Windows.Forms.PictureBox.OnVisibleChanged(EventArgs e)
at System.Windows.Forms.Control.OnParentVisibleChanged(EventArgs e)
at System.Windows.Forms.Control.OnVisibleChanged(EventArgs e)
at System.Windows.Forms.Control.OnParentVisibleChanged(EventArgs e)
at System.Windows.Forms.Control.OnVisibleChanged(EventArgs e)
at System.Windows.Forms.ScrollableControl.OnVisibleChanged(EventArgs e)
at System.Windows.Forms.Control.OnParentVisibleChanged(EventArgs e)
at System.Windows.Forms.Control.OnVisibleChanged(EventArgs e)
at System.Windows.Forms.ScrollableControl.OnVisibleChanged(EventArgs e)
at System.Windows.Forms.Control.OnParentVisibleChanged(EventArgs e)
at System.Windows.Forms.Control.OnVisibleChanged(EventArgs e)
at System.Windows.Forms.ScrollableControl.OnVisibleChanged(EventArgs e)
at System.Windows.Forms.Form.OnVisibleChanged(EventArgs e)
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.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.IntDestroyWindow(HandleRef hWnd)
at System.Windows.Forms.UnsafeNativeMethods.DestroyWindow(HandleRef hWnd)
at System.Windows.Forms.NativeWindow.DestroyHandle()
at System.Windows.Forms.Control.DestroyHandle()
at System.Windows.Forms.Control.Dispose(Boolean disposing)
at System.Windows.Forms.ContainerControl.Dispose(Boolean disposing)
at System.Windows.Forms.Form.Dispose(Boolean disposing)
at ICFTWaveForm.WaveForm.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
at System.Windows.Forms.Control.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
at System.Windows.Forms.Control.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
at System.Windows.Forms.Control.Dispose(Boolean disposing)
at System.Windows.Forms.ContainerControl.Dispose(Boolean disposing)
at System.Windows.Forms.Form.Dispose(Boolean disposing)
at XXXX.frmMain.Dispose(Boolean disposing) in E:\XXXX\XXXX\frmMain.Designer.cs:line 20
at System.ComponentModel.Component.Dispose()
at XXXX.TestComponents.OpenComponentForTestting(stComponents TestComponent, stTestStepDetails Test, enExecutionModeTypes Mode, Boolean IsVisibleMode, Int32 nStepIndex, Int32 nTotalSteps) in E:\My Projects\XXXXXXXX\frmMDIContainer.cs:line 3145
将会出现什么问题。
请帮我。
我必须查看代码才能确定,但也许我可以帮助您查找正确的位置......
堆栈跟踪表明在 Dispose 序列期间发生了 pictureBox 中动画的重绘。那么,为什么图片框应该在它应该死掉的情况下尝试这样做呢?
在这些情况下,您可能需要执行以下操作:在处理窗口之前关闭()窗口,彻底关闭窗口(例如,在调用 base.Dispose() 之前禁用图片框中的动画),或者可能还有其他资源在您的类中创建并需要在您可以安全地调用 base.Dispose 之前进行处置。或者,您可能已经处理掉了仍然需要的东西(例如,pictureBox 试图访问的图像) - 检查处理“组件”实际上会处理什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)