We recently added the dock manager to a major traffic area of our winforms application.We are running on infragistics 20.2.20202.14Here is one example of the stacktrace:
at Infragistics.Win.UltraWinDock.DockableWindowPlaceholderUIElement.PositionChildElements() at Infragistics.Win.UIElement.VerifyChildElements(ControlUIElementBase controlElement, Boolean recursive) at Infragistics.Win.UIElement.VerifyChildElements(ControlUIElementBase controlElement, Boolean recursive) at Infragistics.Win.UIElement.VerifyChildElements(ControlUIElementBase controlElement, Boolean recursive) at Infragistics.Win.UIElement.VerifyChildElements(ControlUIElementBase controlElement, Boolean recursive) at Infragistics.Win.UltraWinDock.WindowDockingAreaUIElement.VerifyChildElements(ControlUIElementBase controlElement, Boolean recursive) at Infragistics.Win.UIElement.DrawHelper(Graphics graphics, Rectangle invalidRectangle, Boolean doubleBuffer, AlphaBlendMode alphaBlendMode, Boolean clipText, Boolean forceDrawAsFocused, Boolean preventAlphaBlendGraphics, Nullable`1 zoomFactor) 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.ManagedContainerControlBase.OnPaint(PaintEventArgs pe) at Infragistics.Win.UltraWinDock.WindowDockingArea.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.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.ContainerControl.WndProc(Message& m) at System.Windows.Forms.Control.ControlN ativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlN ativeWindow.WndProc(Message& m) at System.Windows.Forms.N ativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Is there any direction on what this crash is and how we can handle it or prevent it?
Hello and thank you for contacting Infragistics. To properly diagnose the behavior please provide a sample isolating the behavior. When does this issue happen and does it occur every time?
The above stack trace is coming directly from our customers.And there are more crashes I'm seeing from the DockManager as well, but it looks like coming here for help will not be a useful practice.If I could reproduce myself, I could show it to you. But I can't and I don't have access to the code, just the stack traces that clearly point to infragistics as doing something that is invalid... it would be nice if infragistics was handling these cases instead of just throwing an exception and crashing our whole application.Here are more stacktraces...Operation is not valid due to the current state of the object.
at Infragistics.Win.ChildControlEventManager..ctor(Control rootControl) at Infragistics.Win.ControlUIElementBase.MouseEventManager..ctor(ControlUIElementBase controlElement) at Infragistics.Win.ControlUIElementBase.Initialize(Control control, IUltraControl ultraControl, ProcessEvent eventsToProcess) at Infragistics.Win.ControlUIElementBase..ctor(Control control, IUltraControl ultraControl, Boolean hookEvents) at Infragistics.Win.UltraWinDock.DockableWindowUIElement..ctor(DockableWindow control, UltraDockManager dockManager) at Infragistics.Win.UltraWinDock.DockableWindow.get_ControlUIElement() at Infragistics.Win.ManagedContainerControlBase.Infragistics.Win.IUltraControlElement.get_MainUIElement() at Infragistics.Win.DrawUtility.GetGdiDrawStringFlags(Control ctrl) at Infragistics.Win.ImageAndTextUIElement.MeasureStringCallback.CreateDelegate(Control ctrl, Size layoutArea) at Infragistics.Win.ImageAndTextUIElement.CalculateTextSize(String text, HotkeyPrefix hotkey, Boolean vertical, Control control, AppearanceData& appearance, MeasureStringDelegate measureString, Boolean wrapText, GdiDrawStringFlags drawStringFlags, Size layoutArea) at Infragistics.Win.ImageAndTextUIElement.CalculateTextSize(String text, HotkeyPrefix hotkey, Boolean vertical, Control control, AppearanceData& appearance, Size layoutArea) at Infragistics.Win.ImageAndTextUIElement.CalculateTextSize(String text, HotkeyPrefix hotkey, Boolean vertical, Control control, AppearanceData& appearance) at Infragistics.Win.UltraWinDock.DockablePaneBase.PaneMetrics.UpdateSlidingGroupSizeInfo() at Infragistics.Win.UltraWinDock.DockablePaneBase.PaneMetrics.UpdateSizeInformation() at Infragistics.Win.UltraWinDock.DockablePaneBase.get_ContentsMargins() at Infragistics.Win.UltraWinDock.DockablePaneBase.InternalProcessPaneSize(Boolean enforceMinMax, Size newSize, Size displaySize) at Infragistics.Win.UltraWinDock.DockableGroupPane.AdjustSplitGroupPaneSize(Size availableSize) at Infragistics.Win.UltraWinDock.DockableGroupPane.AdjustChildPaneSize() at Infragistics.Win.UltraWinDock.DockablePaneBase.InternalProcessPaneSize(Boolean enforceMinMax, Size newSize, Size displaySize) at Infragistics.Win.UltraWinDock.DockableGroupPane.InternalProcessPaneSize(Boolean enforceMinMax, Size newSize, Size displaySize) at Infragistics.Win.UltraWinDock.DockAreaPane.InternalProcessPaneSize(Boolean enforceMinMax, Size newSize, Size displaySize) at Infragistics.Win.UltraWinDock.DockablePaneBase.SyncPaneSize() at Infragistics.Win.UltraWinDock.DockableControlPane.Pin() at Infragistics.Win.UltraWinDock.UltraDockManager.ControlPaneRemoved(DockableControlPane pane) at Infragistics.Win.UltraWinDock.DockableControlPanesCollection.Remove(DockableControlPane pane) at Infragistics.Win.UltraWinDock.DockableControlPane.OnControlDisposed(Object sender, EventArgs e) at System.EventHandler.Invoke(Object sender, EventArgs e) at System.ComponentModel.Component.Dispose(Boolean disposing) at System.Windows.Forms.Control.Dispose(Boolean disposing) at System.ComponentModel.Component.Dispose() at System.Windows.Forms.Control.Dispose(Boolean disposing) at Infragistics.Win.ManagedContainerControlBase.Dispose(Boolean disposing) at System.ComponentModel.Component.Dispose() at System.Windows.Forms.Control.Dispose(Boolean disposing) at Infragistics.Win.ManagedContainerControlBase.Dispose(Boolean disposing) at Infragistics.Win.UltraWinDock.AutoHideControl.Dispose(Boolean disposing) at System.ComponentModel.Component.Dispose() at System.Windows.Forms.Control.Dispose(Boolean disposing) at System.Windows.Forms.Form.Dispose(Boolean disposing) at TransPlus.FleetManager.Features.Forms.TransPlusForm.Dispose(Boolean disposing) at TransPlus.FleetManager.frmTripBoard.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.Form.Dispose(Boolean disposing) at TransPlus.FleetManager.Features.Forms.TransPlusForm.Dispose(Boolean disposing) at frmMDI.Dispose(Boolean Disposing) at System.Windows.Forms.Form.WmClose(Message& m) at System.Windows.Forms.Form.WndProc(Message& m) at TransPlus.FleetManager.Features.Forms.TransPlusForm.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.Drawing.Graphics.CheckErrorStatus(Int32 status) at System.Drawing.Graphics.FillRectangle(Brush brush, Int32 x, Int32 y, Int32 width, Int32 height) at System.Drawing.Graphics.FillRectangle(Brush brush, Rectangle rect) at Infragistics.Win.DrawUtility.DrawBackColor(Control control, Graphics graphics, AppearanceData& appearanceData, Rectangle rect, Rectangle invalidRect, Boolean enabled, IDrawCache drawCache, AlphaBlendMode alphaBlendMode, Blend blend, Boolean mirrorBackground) at Infragistics.Win.UIElementDrawParams.DrawBackColor(Rectangle rect) at Infragistics.Win.UltraWinGrid.CellUIElement.DrawBackColor(UIElementDrawParams& drawParams) at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams) at Infragistics.Win.UIElement.DrawChildElements(UIElementDrawParams& drawParams) at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams) at Infragistics.Win.UIElement.DrawChildElements(UIElementDrawParams& drawParams) at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams) at Infragistics.Win.UIElement.DrawChildElements(UIElementDrawParams& drawParams) at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams) at Infragistics.Win.UIElement.DrawChildElements(UIElementDrawParams& drawParams) at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams) at Infragistics.Win.UIElement.DrawChildElements(UIElementDrawParams& drawParams) at Infragistics.Win.UIElement.DrawElement(UIElementDrawParams& defaultDrawParams) at Infragistics.Win.UIElement.DrawHelper(Graphics graphics, Rectangle invalidRectangle, Boolean doubleBuffer, AlphaBlendMode alphaBlendMode, Boolean clipText, Boolean forceDrawAsFocused, Boolean preventAlphaBlendGraphics, Nullable`1 zoomFactor) 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.UltraWinGrid.UltraGridUIElement.Draw(Graphics graphics, Rectangle invalidRectangle, Boolean doubleBuffer, AlphaBlendMode alphaBlendMode) at Infragistics.Win.UltraControlBase.OnPaint(PaintEventArgs pe) at Infragistics.Win.UltraWinGrid.UltraGrid.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) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)