Hi Xi Wang,
Thanks for using Syncfusion Products.
Regarding query 1:
You can get the visible rows and columns range from the grid by using the method GridControl.ScrollRows.GetVisibleLines(). This method will return visible line collections from grid. From this VisibleLinesCollection we can get the line index for the particular visible index.
Please refer the following snipped.
Code Snipped[C#]
// To get the visible rows and columns.
VisibleLinesCollection visibleRows = grid.ScrollRows.GetVisibleLines();
VisibleLinesCollection visibleColumns = grid.ScrollColumns.GetVisibleLines();
int top = visibleRows[visibleRows.FirstBodyVisibleIndex].LineIndex;
int left = visibleColumns[visibleColumns.FirstBodyVisibleIndex].LineIndex;
int bottom = visibleRows[visibleRows.LastBodyVisibleIndex].LineIndex;
int right = visibleColumns[visibleColumns.LastBodyVisibleIndex].LineIndex;
Regarding query 2:
You can achieve this requirement by using the GridControl.ScrollInView() method. This method will bring the specified row column index cell in to view.
Code Snipped[C#]
// To bring cell in to view.
RowColumnIndex rowColumnIndex = new RowColumnIndex(1,3);
grid.ScrollInView(rowColumnIndex);
Regarding query 3:
InvalidateCells marks the cells a dirty flag. If the invalidated cell is in view then it will trigger the QueryCellInfo while arranging the cells. In case the cells which are not in view is invalidated, the dirty flag is set to the particular cells, but the QueryCellInfo trigger when those cells brought to view.
Please let us know if this helps.
Regards,
Kathirvel