After getting nowhere with Infragistics on my issue with the Dispose() causing a crash with Ideablade, I decided to get a response from Ideablade. Ideablade is able to reproduce the crash when using Ideablade DevForce Classic 3.6.9.1 (which supposedly supports Infragistics 9.2) where if your grid is binded with Ideablade and you click a cell on the UltraGrid, then close the form, you get a crash. They are telling me in is an issue with the grid's dispose(), however it only happens when binded with Ideablade.
So if someone could please let me know if this is a problem with Infragistics 9.2 UltraGrid I would appreciate it. This upgrade has been a headache and I would like to put it to rest. I had a support case that is being ignored now from Infragistics so any help with this would be appreciated.
The error is:
at Infragistics.Win.UltraWinGrid.UltraGridColumn.get_IsFirstVisibleColumnOnLevel()
at Infragistics.Win.UltraWinGrid.UltraGridCell.CalculateCellOverlayRect(UIElement element, Int32 borderWidth, Boolean calculateInvalidRect)
at Infragistics.Win.UltraWinGrid.UltraGridCell.InvalidateElem(UIElement element, Boolean recalcRects)
at Infragistics.Win.UltraWinGrid.GridItemBase.InvalidateItem(RowScrollRegion rsr, ColScrollRegion csr, Boolean recalcRects)
at Infragistics.Win.UltraWinGrid.GridItemBase.InvalidateItem(RowScrollRegion rsr, Boolean recalcRects)
at Infragistics.Win.UltraWinGrid.RowScrollRegion.OnRowPropChange(VisibleRow vr, PropChangeInfo propChange)
at Infragistics.Win.UltraWinGrid.VisibleRow.OnSubObjectPropChanged(PropChangeInfo propChange)
at Infragistics.Shared.SubObjectBase.NotifyPropChange(PropChangeInfo trigger)
at Infragistics.Shared.SubObjectBase.NotifyPropChange(Enum propId, PropChangeInfo trigger)
at Infragistics.Win.UltraWinGrid.CellsCollection.OnSubObjectPropChanged(PropChangeInfo propChange)
at Infragistics.Win.UltraWinGrid.UltraGridCell.InternalSelect(Boolean value)
at Infragistics.Win.UltraWinGrid.UltraGrid.UpdateSelectedItems(Selected selected)
at Infragistics.Win.UltraWinGrid.UltraGrid.SelectNewSelection(Type type, Selected selected)
at Infragistics.Win.UltraWinGrid.UltraGrid.ClearSelectedCells()
at Infragistics.Win.UltraWinGrid.SelectedCellsCollection.Clear()
at Infragistics.Win.UltraWinGrid.UltraGridBase.Set_ListManager(Object newDataSource, String newDataMember)
at Infragistics.Win.UltraWinGrid.UltraGridBase.set_DataSource(Object value)
at IdeaBlade.UI.WinForms.InfragisticsControls.UltraGridBindingManager.SetGridDataSource()
at IdeaBlade.UI.WinForms.InfragisticsControls.UltraGridBindingManager.OnBindingSourceChanged()
at IdeaBlade.UI.WinForms.BindingManager.SetupBindingSource(BindingSource pBindingSource)
at IdeaBlade.UI.WinForms.BindingManager.get_BindingSource()
at IdeaBlade.UI.WinForms.BindingManager.set_BindingSource(BindingSource value)
at IdeaBlade.UI.WinForms.BindingManager.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
at System.ComponentModel.Container.Dispose(Boolean disposing)
at System.ComponentModel.Container.Dispose()
at GridCrashSample.Form3.Dispose(Boolean disposing) in C:\Documents and Settings\john\Desktop\Development\BSOL\MyWorkingPlace\091120_GridCrashSample\GridCrashSample\Form3.Designer.vb:line 10
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 GridCrashSample.Form1.Dispose(Boolean disposing) in C:\Documents and Settings\john\Desktop\Development\BSOL\MyWorkingPlace\091120_GridCrashSample\GridCrashSample\Form1.Designer.vb:line 13
at System.Windows.Forms.Form.WmClose(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.DefFrameProc(IntPtr hWnd, IntPtr hWndClient, Int32 msg, IntPtr wParam, IntPtr lParam)
at System.Windows.Forms.Form.DefWndProc(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.WmSysCommand(Message& m)
at System.Windows.Forms.Form.WmNcButtonDown(Message& m)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(ApplicationContext context)
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
at GridCrashSample.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
What's the case number of the support case you were dealing with?
Can you get information from Ideablade that would allow us to reproduce the same behavior without needing their toolset as a prerequisite? If they're certain that it's our error, it should be possible to reproduce with solely our controls, and having such a sample will help us greatly with our research.
Support Case: CAS-35673-JD4DNW
I am trying to get a response from Ideablade, but in the meantime,
The exception I was getting on the dispose had events that I cannot find anywhere in Infragistics documentation. Some of it is listed below. The parts with the UltraGridCell I cannot find in any Infragistics DLL. I hope this helps a bit, but dealing with Ideablade leaves me with waiting for a response on the forum. The response I received originaly was:
I will admit that I was able to reproduce your problem. The crash occurs in the Dispose routine.
I also looked on the Web and found others who are using Infragistic grids and having problems with Dispose():
http://forums.infragistics.com/forums/p/34311/186295.aspx
http://community.infragistics.com/forums/p/21210/79158.aspx
The Error I received was.
Error Message: Object reference not set to an instance of an object.
StackTrace: at Infragistics.Win.UltraWinGrid.UltraGridColumn.get_IsFirstVisibleColumnOnLevel()
Thanks for your response.
The stack trace doesn't give me any ideas at first glance. We'll pass this on to our developers to see if they have any insight.
The forum links you provided were related to issues that weren't caused by our controls. In the first two (which point to the same thread), our controls weren't even involved in the stack trace. In the third, the issue was caused by incorrect use of threading. None of these scenarios are within our ability to control.
With the information I see, it's not clear whether it's our toolset or Ideablade's that is causing this issue. While our developers take a look at the information that's available, the best next step is for Ideablade to provide us information on how to reproduce this same exception without their tools involved. We don't have Ideablade's toolset to be able to test this ourselves.
I asked Ideablade to provide what you need. I still have not heard from them. Their support is not up to par with yours. Their forum seems unmonitored. I appreciate you looking into it.
Just in case anyone else has this problem I am updating this post..
Both Ideablade and Infragistics are trying to figure it out, no one knows who's problem it is yet but Ideablade gave me a workaround for the time being.
Add a FormClosing event handler and in there set UltraGrid1.Datasource=null
This works for me until the issue is resolved.
Two updates were sent to you earlier today.
is someone going to respond to the support case?
Thanks again for the information.
I've gotten some feedback from a developer. While it's possible for us to add a check-for-null in the property where this exception occurs, doing so may simply be covering up a much larger issue. We'll need something that we can run and debug to be able to determine what's actually happening here and to determine what the right course of action is.
I recommend continuing to work through the support case, since we're able to dig into much more detail through the support case than we can through our forums.