¿Cómo saber qué fila está seleccionada en un Datagridview?
En ocasiones, cuando trabajas con un Datagridview resulta necesario saber cuál es la fila que está seleccionada actualmente para, de esta manera, poder trabajar con los datos que se encuentran en ésta o utilizar esos datos para realizar más adelante alguna validación.
Para poder saber qué fila está seleccionada, primero debes validar que se haya seleccionado una fila ya que, de lo contrario, nos enviará un error.
Para esto, basta con que accedas primero a la propiedad SelectedRows (Filas seleccionadas) y posteriormente a la propiedad Count para que el control te de el número de filas que se seleccionaron en el Datagridview.
En caso de que el número de filas seleccionadas sea mayor a cero podrás acceder a la propiedad CurrentRow (Fila actual) del Datagridview y pedirle la posición en que se encuentra a través de la propiedad Index (Índice)
Por otro lado, en caso de que el número de filas seleccionadas en el control sea cero significará que no se ha seleccionado ninguna fila completa por lo que puedes enviarle un mensaje indicándole al usuario que selecciona una fila.
Pero… ¿Qué pasa si el usuario no seleccionó una fila completa sino solamente una celda de la fila?
Bien… para solucionar esto, tenemos dos opciones.
La primera es que, al cargar el formulario, cambies el valor de la propiedad llamada SelectionMode del Datagridview por el valor FullRowSelect el cual permitirá que, al hacer clic en una celda de la fila, se seleccione la fila completa. De esta manera, con el código que escribiste anteriormente te funcionará.
Datagridview1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
La segunda opción es cambiar la validación para que, en lugar de que obtengas el número de filas seleccionadas, le pidas el valor de la propiedad CurrentRow (Fila actual) y, en caso de que se haya seleccionado una fila completa o por lo menos una celda de la fila, puedas trabajar con los datos de ese registro.
De igual manera, en caso de que no haya seleccionado ninguna fila o ninguna celda, te devolverá el valor Nothing con lo cual tú podrás mostrarle un mensaje al usuario para decirle que seleccione una fila.
Esta segunda opción quedaría así:
--- También te puede interesar ---