This is possible with the CellMouseClick or CellMouseDobleClick event, depending on what works best for you. An example of how to use it is the following.
private void dtg_Marca_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
int filaSeleccionada = e.RowIndex;
marBO = new Cls_MarcaBO();
/*agrega valores a un objeto de la clase BO mediante la fila
seleccionada y el nombre o número de la columna de la columna*/
//se selecciona el id para mostrar los datos en los txt
//Ejemplo columna por número
marBO.Id_marca = int.Parse(dtg_Marca.Rows[filaSeleccionada].Cells[0].Value.ToString());
//Ejemplo columna por nombre
marBO.Marca = dtg_Marca.Rows[filaSeleccionada].Cells["nombre_marca"].Value.ToString();
//Poner valores en txt
txt_ClaMar.Text = marBO.Id_marca.ToString();
txt_NomMar.Text = marBO.Marca;
//Activar/Desactivar botones en caso de requerirlo.
btn_NuevoMar.Enabled = true;
btn_EliminarMar.Enabled = true;
btn_ActualizarMar.Enabled = true;
btn_GuardarMar.Enabled = false;
txt_NomMar.Enabled = true;
}