Cómo establecer la fila actual en un DataGridView (C#)

Establecer la fila actual de un control «DataGridView» en tu aplicación C# puede resultar confuso si no conoces la propiedad «CurrentCell». Esta propiedad pone la celda seleccionada en vista si no está visible. Los programadores a menudo olvidan refrescar el «DataGridView» tras seleccionar una fila. La propiedad «CurrentRow» localiza la fila que contiene la celda actual.

Paso 1

Abre Microsoft Visual Studio y haz clic en «Nuevo proyecto…» en el panel izquierdo. Expande «Otros lenguajes», «Visual C#», y haz clic en «Windows». Haz doble clic en «Aplicación Windows Forms» para crear un proyecto.

Paso 2

Haz doble clic en «DataGridView» del panel «Cuadro de herramientas» para añadir uno al formulario. Haz doble clic en «Button» para añadir un botón.

Paso 3

Haz doble clic en el formulario para crear evento Load. Copia y pega este código para poblar el DataGridView con cuatro filas:

dataGridView1.ColumnCount = 3;
dataGridView1.Columns[0].Name = "ID";
dataGridView1.Columns[1].Name = "Nombre";
dataGridView1.Columns[2].Name = "Precio";

string[] fila = new string[] { "1", "Artículo 1", "150" };
dataGridView1.Rows.Add(fila);
fila = new string[] { "2", "Artículo 2", "250" };
dataGridView1.Rows.Add(fila);
fila = new string[] { "3", "Artículo 3", "125" };
dataGridView1.Rows.Add(fila);
fila = new string[] { "4", "Artículo 4", "75" };
dataGridView1.Rows.Add(fila);

Paso 4

Vuelve al diseño del formulario y haz doble clic en «button1» para crear evento Click. Copia y pega este código para establecer la fila 3 (índice 2) como fila actual:

dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.Rows[2].Index;
dataGridView1.Refresh();
dataGridView1.CurrentCell = dataGridView1.Rows[2].Cells[1];
dataGridView1.Rows[2].Selected = true;
MessageBox.Show(dataGridView1.CurrentRow.Index.ToString());