Hi,
We use using multiple grouping on columns (RowLayoutStyle = RowLayoutStyle.GroupLayout).
We add some groups on columns. Groups has parent group.
Browsing the grid with keyboard, the up and down key Works stange, like left/right button.
Can we make a workaround to correct this behaviour?
Hello Lacos,
I am going to try and build a sample to isolate this, if you have something that isolates this I'd greatly appreciate it if you can attach it here to speed up the investigation. In the meantime you can try handling the BeforePerformAction event and watch for the action that is getting triggered which is moving the focus left/right and then cancel the action. Next, either call PerformAction to move up/down. If that doesn't work, explicitly set focus to the same cell in the next/previous row.
Let me know if you have any questions.
I think I reproduced the behavior but can you check my sample below to see if it's what you are seeing?
eg.
Run sample
Click first cell and use up/down arrow keys. They behave the same way as left/right arrow keys even if the columns aren't actually stacked or "grouped".
6082.WindowsFormsApp1.zip
I'm not sure if this is 100% correct - there might be some situations where it's not quite right if you have child bands or filtering or grouping, but it seems to work in the sample and it should get point you in the right direction.
private void UltraGrid1_BeforePerformAction(object sender, Infragistics.Win.UltraWinGrid.BeforeUltraGridPerformActionEventArgs e) { switch (e.UltraGridAction) { case Infragistics.Win.UltraWinGrid.UltraGridAction.BelowCell: case Infragistics.Win.UltraWinGrid.UltraGridAction.AboveCell: e.Cancel = true; var grid = (UltraGrid)sender; var activeCell = grid.ActiveCell; if (null == activeCell) return; var activeRow = activeCell.Row; var direction = e.UltraGridAction == UltraGridAction.AboveCell ? SiblingRow.Previous : SiblingRow.Next; var relatedRow = activeRow.GetSibling(direction, true, false, true); if (null != relatedRow) relatedRow.Cells[activeCell.Column].Activate(); break; } }