Hi, I have a wingrid embedded in a tab pane of a tab control. The wingrid displays data in 4 band levels. When clicking on a column header in the lowest band level, sometimes the wingrid will scroll to the top, causing the user to lose track of where they were. I have attached a short video that demonstrates the problem.
Thanks, Bill
Hi Bill,
I'm just following up again. Were you able to reproduce the issue in a sample?
Okay, it looks like the sample is the only way go then. I will leave the case open and check back with you in a few days if I don't hear from you before then. :)
Hi Mike,
OnAfterRowActivate isn't firing when the scroll to the top problem occurs when clicking the column header. I will pursue isolation of the problem.
Thanks,
Bill
Sorry, that's the wrong event. I meant BeforeRowRegionScroll, actually. But if that's not firing, then maybe you could try AfterRowActivate and post the call stack from there. To be honest, it probably won't help, but it might give us an idea and it's a lot quicker than creating a small sample project so it might be worth a shot.
There isn't anything occurring with the DataSource while the user is scrolling and sorting the grid, so no resets should be occurring.
Regarding the BeforeSortChange call stack see below.
One other thing I noticed. When this scrolling problem occurs, the grid's BeforeRowRegionScroll handler is not being invoked. But if I manually scroll the grid it does.
Call stack:
> ProductionScheduler.dll!QAD.Plugin.PlanningScheduling.SequencingGridControl.Grid_BeforeSortChange(object sender, Infragistics.Win.UltraWinGrid.BeforeSortChangeEventArgs e) Line 66 C# Infragistics.Win.UltraWinGrid.dll!Infragistics.Win.UltraWinGrid.UltraGridBase.OnBeforeSortChange(Infragistics.Win.UltraWinGrid.BeforeSortChangeEventArgs e) + 0x87 bytes Infragistics.Win.UltraWinGrid.dll!Infragistics.Win.UltraWinGrid.UltraGrid.FireEvent(Infragistics.Win.UltraWinGrid.GridEventIds id, System.EventArgs e) + 0x972 bytes Infragistics.Win.UltraWinGrid.dll!Infragistics.Win.UltraWinGrid.UltraGrid.FireCommonEvent(Infragistics.Win.UltraWinGrid.CommonEventIds id, System.EventArgs e, bool checkInProgress) + 0x154 bytes Infragistics.Win.UltraWinGrid.dll!Infragistics.Win.UltraWinGrid.SortedColumnsCollection.ProcessNewSortedColumnsHelper(Infragistics.Win.UltraWinGrid.SortedColumnsCollection newSortedColumns, bool fireEvents, bool groupBy) + 0x3a5 bytes Infragistics.Win.UltraWinGrid.dll!Infragistics.Win.UltraWinGrid.SortedColumnsCollection.SetSortedColumn(Infragistics.Win.UltraWinGrid.UltraGridColumn column, Infragistics.Win.UltraWinGrid.SortIndicator sortIndicator, bool groupBy, bool clearExistingNonGroupByColumns, bool fireEvents) + 0x5c8 bytes Infragistics.Win.UltraWinGrid.dll!Infragistics.Win.UltraWinGrid.UltraGridBand.SetSortedColumn(Infragistics.Win.UltraWinGrid.UltraGridColumn column, Infragistics.Win.UltraWinGrid.SortIndicator sortIndicator, bool clearExisting) + 0x60 bytes Infragistics.Win.UltraWinGrid.dll!Infragistics.Win.UltraWinGrid.UltraGridColumn.ClickSortIndicator() + 0x1c4 bytes Infragistics.Win.UltraWinGrid.dll!Infragistics.Win.UltraWinGrid.HeaderUIElement.EndDragHelper(bool cancelled) + 0x1bf bytes Infragistics.Win.UltraWinGrid.dll!Infragistics.Win.UltraWinGrid.HeaderUIElement.OnMouseUp(System.Windows.Forms.MouseEventArgs e) + 0x24 bytes Infragistics.Win.dll!Infragistics.Win.ControlUIElementBase.ProcessMouseUpHelper(object sender, System.Windows.Forms.MouseEventArgs e) + 0xa3 bytes Infragistics.Win.dll!Infragistics.Win.ControlUIElementBase.ProcessMouseUp(object sender, System.Windows.Forms.MouseEventArgs e) + 0x16e bytes Infragistics.Win.dll!Infragistics.Win.Utilities.ProcessEvent(System.Windows.Forms.Control control, Infragistics.Win.ControlUIElementBase.ProcessEvent eventToProcess, System.EventArgs e) + 0x3dc bytes Infragistics.Win.dll!Infragistics.Win.UltraControlBase.OnMouseUp(System.Windows.Forms.MouseEventArgs e) + 0x2a bytes System.Windows.Forms.dll!System.Windows.Forms.Control.WmMouseUp(ref System.Windows.Forms.Message m, System.Windows.Forms.MouseButtons button, int clicks) + 0x274 bytes System.Windows.Forms.dll!System.Windows.Forms.Control.WndProc(ref System.Windows.Forms.Message m) + 0x892 bytes System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.OnMessage(ref System.Windows.Forms.Message m) + 0x11 bytes System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.WndProc(ref System.Windows.Forms.Message m) + 0x39 bytes System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.Callback(System.IntPtr hWnd, int msg, System.IntPtr wparam, System.IntPtr lparam) + 0x80 bytes System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.DefWndProc(ref System.Windows.Forms.Message m) + 0xfb bytes System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.WndProc(ref System.Windows.Forms.Message m) + 0x5 bytes Infragistics.Win.dll!Infragistics.Win.EditorWithMask.AccessibleTextManager.AccessibleTextSubclasser.WndProc(ref System.Windows.Forms.Message msg) + 0xbb bytes System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.Callback(System.IntPtr hWnd, int msg, System.IntPtr wparam, System.IntPtr lparam) + 0x80 bytes System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.DefWndProc(ref System.Windows.Forms.Message m) + 0xfb bytes System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.WndProc(ref System.Windows.Forms.Message m) + 0x5 bytes Infragistics.Win.dll!Infragistics.Win.FormattedLinkLabel.FormattedLinkEditor.AccessibleTextManager.AccessibleTextSubclasser.WndProc(ref System.Windows.Forms.Message msg) + 0xac bytes System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.Callback(System.IntPtr hWnd, int msg, System.IntPtr wparam, System.IntPtr lparam) + 0x80 bytes System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.DefWndProc(ref System.Windows.Forms.Message m) + 0xfb bytes System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.WndProc(ref System.Windows.Forms.Message m) + 0x5 bytes Infragistics.Win.dll!Infragistics.Win.FormattedLinkLabel.IMENativeWindowManager.IMENativeWindow.WndProc(ref System.Windows.Forms.Message m) + 0x4c bytes System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.Callback(System.IntPtr hWnd, int msg, System.IntPtr wparam, System.IntPtr lparam) + 0x80 bytes [Native to Managed Transition] [Managed to Native Transition] System.Windows.Forms.dll!System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(System.IntPtr dwComponentID, int reason, int pvLoopData) + 0x24d bytes System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(int reason, System.Windows.Forms.ApplicationContext context) + 0x155 bytes System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoop(int reason, System.Windows.Forms.ApplicationContext context) + 0x4a bytes System.Windows.Forms.dll!System.Windows.Forms.Application.Run(System.Windows.Forms.Form mainForm) + 0x31 bytes QAD.Shell.exe!QAD.Shell.ShellLoader.StartGui(string[] args) + 0xa7f bytes [Native to Managed Transition] QAD.Client.exe!QAD.Shell.Bootstrap.Main(string[] args) + 0xbb7 bytes