Hi,
We're using Infragistics version 10.3. Some of our users have been complaining about the UltraWinToolbars freezing when they try to hover over it. Our application is run using the Application.Run() and in the event handler Application_ThreadException
Application.ThreadException += Application_ThreadException
We get the following stacktrace:
Misc - 2019/06/11 09:38:27:724 - Cat:0 - [Thread 1] An unhandled exception was encountered and Application_ThreadException invoked: : - The operation completed successfully at System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize, CopyPixelOperation copyPixelOperation) 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.Ribbon.RibbonTabManager.MouseLeaveTab(ITabItem tab) at Infragistics.Win.UltraWinTabs.TabItemUIElement.OnMouseLeave() at Infragistics.Win.ControlUIElementBase.ElementEntered(UIElement element, Boolean triggerMouseLeavesOnly) at Infragistics.Win.ControlUIElementBase.ProcessMouseMoveHelper(Object sender, MouseEventArgs e) at Infragistics.Win.ControlUIElementBase.ProcessMouseMove(Object sender, MouseEventArgs e) at Infragistics.Win.Utilities.ProcessEvent(Control control, ProcessEvent eventToProcess, EventArgs e) at Infragistics.Win.UltraControlBase.OnMouseMove(MouseEventArgs e) at System.Windows.Forms.Control.WmMouseMove(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) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) Misc - 2019/06/11 09:38:27:756 - Cat:0 - [Thread 1] An unhandled exception was encountered and Application_ThreadException invoked: : - Control ID not found at System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize, CopyPixelOperation copyPixelOperation) 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.Ribbon.RibbonTabManager.MouseLeaveTab(ITabItem tab) at Infragistics.Win.UltraWinTabs.TabItemUIElement.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.TerminateCapture(Boolean aborted, Boolean cancelControlCapture) at Infragistics.Win.ControlUIElementBase.ProcessMouseDownHelper(Object sender, MouseEventArgs e) at Infragistics.Win.ControlUIElementBase.ProcessMouseDown(Object sender, MouseEventArgs e) at Infragistics.Win.Utilities.ProcessEvent(Control control, ProcessEvent eventToProcess, EventArgs e) at Infragistics.Win.UltraWinToolbars.UltraToolbarsDockArea.OnMouseDown(MouseEventArgs e) at System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks) 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) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
I've read from other posts that as it begins with a NativeWindow.callback it might be an issue with thread marshaling or that it might be due to a lock screen on window 8.
https://stackoverflow.com/questions/16435213/win32exception-caught-by-application-threadexception-missing-own-code
however our users use windows 7 so don't suspect its to do with lock screen.
Please could you help out here?
Hello Huzan,
I have been investigating the behavior you are seeing, and after looking at the Infragistics.Win.ControlUIElementBase.CaptureOldImage, it appears that this method has changed quite a bit since version 10.3, as I am seeing multiple changes that happened in 2013 as well as a few that happened in 2017. There are many changes all along the line of that stack-trace related to Infragistics since 10.3. Judging by all of these changes, I believe the scenario that you are describing was very likely caught and fixed since version 10.3 and so the best recommendation I can make at the moment is to upgrade to a later version of Infragistics for Windows Forms.
Please let me know if you have any other questions or concerns on this matter.
Thanks for replying Andrew. Upgrading the Infragistics version is something we are not looking at doing now as this is a legacy app. Is there any way to catch these exceptions so that the freezing stops? Right now it goes into the Application Thread Exception handler and causes the ribbon toolbar to hang. Is there any way the user can still continue using the application despite the error?