DataGridView-如何跳转到搜索中的选定行?

我使用以下代码在DataGridView中查找行并突出显示该行。

private void btnSearch_Click(object sender, EventArgs e) { currentMode = ModeSelection.Search; if (cmbSearchBy.SelectedIndex == Convert.ToInt16(SearchBy.MaterialID)) { dgvSearchResults.SelectionMode = DataGridViewSelectionMode.FullRowSelect; int rowIndex = -1; try { foreach (DataGridViewRow row in dgvSearchResults.Rows) { if (row.Cells[1].Value.ToString().Equals(materialLocation.MaterialID)) { //Select the row here rowIndex = row.Index; dgvSearchResults.Rows[rowIndex].Selected = true; break; } } } catch (Exception ex) { throw ex; } } 

它完美地运作。 问题是我的DataGridView有超过500条记录,如果所选行靠近DataGridView的底部,则用户必须一直向下滚动到底部。 我可以使用哪些代码跳转到我要查找的行? 任何帮助将非常感谢!

我发现我可以使用DataGridView.FirstDisplayedScrollingRowIndex属性滚动到选定的行索引并将其显示为DataGridView中的第一行。

这是我在我的程序中使用的方式 –

 if (row.Cells[1].Value.ToString().Equals(materialLocation.MaterialID)) { rowIndex = row.Index; dgvSearchResults.ClearSelection(); dgvSearchResults.Rows[rowIndex].Selected = true; dgvSearchResults.FirstDisplayedScrollingRowIndex = rowIndex; dgvSearchResults.Focus(); break; } 
 int rowIndex = -1; foreach (DataGridViewRow row in dataGridView1.Rows) { if (row.Cells[0].Value.ToString().Equals(searchString)) { rowIndex = row.Index; break; } } if (rowIndex >= 0) { dataGridView1.CurrentCell = dataGridView1[visibleColumnIndex, rowIndex]; } 

visibleColumnIndex – 必须显示所选单元格