We are using the BeforePerformAction event to determine if a tab key is pressed (if e.UltraGridAction == UltraGridAction.NextCellByTab).
if the tab key was pressed and if we are on the last cell in the row, then the row is added and a new row automatically opened. We use the grid's CurrentStatus to determine if we are in the last cell of the last row ((grid.CurrentState & (UltraGridState.CellLast | UltraGridState.RowLastChild)) == (UltraGridState.CellLast | UltraGridState.RowLastChild)).
However, the CurrentStatus has both the CellLast and RowLastChild set on all of the cells in the row (checking the value at any point returns "Cell | CellLast | HasDropdown | InEdit | Row | RowLast | RowLastChild | LastRowInGrid"), so pressing the tab key always exits the row.
Why is the CurrentStatus value incorrect?
if (e.UltraGridAction == UltraGridAction.NextCellByTab)
Hi Richard,
I'm not sure if this is a bug or not. It's been this way for a long time. I tried as far back as v8.3 with the same results. I think these states might be used for navigation and they indicate that there is a break after the current row. So if you have a parent row that is expanded and has children, there's a break between that row and it's siblings. So this might be correct.
It's not exactly clear to me what you are trying to do here or which row(s) you are concerned with. But I think you might want UltraGridState.LastRowInGrid, anyway, instead of RowLastChild.
Hello Richard,
I am just checking about the progress of this issue. Let me know if you need our further assistance on it.
Thank you for using Infragistics Components.