У меня есть стандартный DataGridView в приложении WinForms.
Сетка не разрешает множественный выбор.
У меня есть ситуация, когда мне нужно перезагрузить данные сетки и вернуть пользователя обратно в строку, на которой они были сосредоточены.
Приведенный ниже код работает с выделением требуемой строки, однако строка не сфокусирована.
Индикатор фокусировки остается в первой строке сетки.
Как переместить фокус на этот ряд, а не просто выбрать его? Мне даже не нужно его выбирать, я просто хочу поместить пользователя в строку, в которой он находился.
var selectedItem = string.Empty;
if (grd.CurrentRow != null)
selectedItem = ((Item) grd.CurrentRow.DataBoundItem).ItemId;
this.ItemBindingSource.DataSource = null;
get my data
this.ItemBindingSource.DataSource = data;
foreach (DataGridViewRow row in grd.Rows)
{
if (row != null && (string) row.Cells[0].Value == selectedItem)
{
grd.ClearSelection();
row.Selected = true;
break;
}
}