XtraGrid keeping focus on same row after reload of data
The following example illustrates how to set the row focus of a grid back to the same row after the data has been reloaded.
// declare a variable to hold the ID of our current user int? currentlySelectedUser = null; // make sure the grid has some rows. if (this.gridViewUsers.RowCount > 0) { // get the User ID value from the row object oTemp = this.gridViewUsers.GetFocusedRowCellValue(this.lUserPK_colUser); // make sure we got back a value if (oTemp != null && oTemp != DBNull.Value) { // save the User ID to our local variable currentlySelectedUser = (int)oTemp; } } // load the grid data this.gridUsers.DataSouce = this.GetOurData(); // set the focused row back to the user that had the focus before. if (currentlySelectedUser.HasValue) { // search for the User PK value in the grid int rowHandle = this.gridViewUsers.LocateByValue("lUserPK", currentlySelectedUser.Value); // was it found? if (rowHandle != DevExpress.XtraGrid.GridControl.InvalidRowHandle) { // set the focused row handle to the row that we found this.gridViewUsers.FocusedRowHandle = rowHandle; } }