Hi,
I am getting an unhandled exception somewhere in the Ribbon of the UltraToolbarsManager. I was not able to trace a code fragment inside my application where it happens, the stack trace shows only Infragistics and Windows Forms modules. The reproduction scenario is very rare, but the few times it has been seen was always when the machine was going to suspend mode. The exception is handled by the Application.ThreadException event handler and I have had no chance to catch from a different location (the form is loaded and run with Applicatioin.Run()).
Here are the exception details:
Das Handle ist ungültigSystem.ComponentModel.Win32ExceptionStack Trace: bei System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize, CopyPixelOperation copyPixelOperation) bei System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize) bei System.Drawing.Graphics.CopyFromScreen(Point upperLeftSource, Point upperLeftDestination, Size blockRegionSize) bei Infragistics.Win.ControlUIElementBase.CaptureOldImage(UIElement element) bei Infragistics.Win.TransitionInfo..ctor(UIElement element, Transition transition, TransitionSettings settings) bei Infragistics.Win.ControlUIElementBase.InitiateTransition(TransitionSettings settings, Transition transition, UIElement element) bei Infragistics.Win.UIElement.InitiateTransition(TransitionSettings settings, UIElementTransitionType transitionType) bei Infragistics.Win.UltraWinToolbars.RibbonGroupUIElement.OnMouseLeave() bei Infragistics.Win.ControlUIElementBase.ElementEntered(UIElement element, Boolean triggerMouseLeavesOnly) bei Infragistics.Win.ControlUIElementBase.SyncMouseEntered(Boolean triggerMouseLeavesOnly, UIElementInputType inputType, Boolean ignoreLastElementEntered) bei Infragistics.Win.ControlUIElementBase.ProcessMouseLeave(Object sender, EventArgs e) bei Infragistics.Win.Utilities.ProcessEvent(Control control, ProcessEvent eventToProcess, EventArgs e) bei Infragistics.Win.UltraControlBase.OnMouseLeave(EventArgs e) bei Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea.OnMouseLeave(EventArgs e) bei System.Windows.Forms.Control.WmMouseLeave(Message& m) bei System.Windows.Forms.Control.WndProc(Message& m) bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
The exception is handled on the same thread as the form gets created, so I suppose that it is not caused by another thread modifying the UI.
I would appreciate any help or hints where to look at.
Best regards,
Michael
Same result (Win32Exception) but different Stack Trace:
The handle is invalid System.ComponentModel.Win32Exception Stack Trace: at System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize, CopyPixelOperation copyPixelOperation) at System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize) at System.Drawing.Graphics.CopyFromScreen(Point upperLeftSource, Point upperLeftDestination, Size blockRegionSize) at Infragistics.Win.ControlUIElementBase.CaptureOldImage(UIElement element) at Infragistics.Win.TransitionInfo..ctor(UIElement element, Transition transition, TransitionSettings settings) at Infragistics.Win.ControlUIElementBase.InitiateTransition(TransitionSettings settings, Transition transition, UIElement element) at Infragistics.Win.UIElement.InitiateTransition(TransitionSettings settings, UIElementTransitionType transitionType) at Infragistics.Win.UltraWinToolbars.RibbonGroupUIElement.OnMouseLeave() at Infragistics.Win.ControlUIElementBase.ElementEntered(UIElement element, Boolean triggerMouseLeavesOnly) at Infragistics.Win.ControlUIElementBase.SyncMouseEntered(Boolean triggerMouseLeavesOnly, UIElementInputType inputType, Boolean ignoreLastElementEntered) at Infragistics.Win.ControlUIElementBase.VerifyIfElementsChanged(Boolean verify, Boolean syncMouseEntered) at Infragistics.Win.ControlUIElementBase.Draw(Graphics graphics, Rectangle invalidRectangle, Boolean doubleBuffer, AlphaBlendMode alphaBlendMode, Size elementSize, Boolean preventAlphaBlendGraphics) at Infragistics.Win.ControlUIElementBase.Draw(Graphics graphics, Rectangle invalidRectangle, Boolean doubleBuffer, AlphaBlendMode alphaBlendMode) at Infragistics.Win.UltraControlBase.OnPaint(PaintEventArgs pe) at Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea.OnPaint(PaintEventArgs pe) at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer) at System.Windows.Forms.Control.WmPaint(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
No I can't. As I said, it is difficult to reproduce. But because the exception comes on the main thread that created the ribbon I would not expect it to be a threading problem.
Hi mgroeger,
Is this still reproducible without using threads? Please note that our controls and components are not thread safe, so you would have to handle such scenarios yourself.
How can I reproduce this without using threads?
Oh and two more notes:
Infragistics NetAdvantage 2012 Vol. 1 is used.
The issue was only seen on Windows 8 so far, but as I said, the reproduction is very rare.