una ultima toda seleccionar seleccionada poner obtener net foco fila evento celda buscar .net datagridview

.net - ultima - ¿Cómo seleccionar y desplazarse a la nueva fila en Datagridview?



seleccionar toda la fila datagridview c# (3)

Tengo un DataGridView vinculado a una tabla DB. DataGridView no es editable, hay algunos campos de texto donde se pueden editar los datos, que se controlan con botones. Tengo un botón NewRow con el siguiente código:

dataGridView1.AllowUserToAddRows = true; foreach (DataGridViewRow row in dataGridView1.Rows) { if (row.Selected) { row.Selected = false; } } dataGridView1.Rows[dataGridView1.NewRowIndex].Selected = true;

Wat que necesito es:

  • la vista de la cuadrícula de datos debe desplazarse hacia la parte inferior (donde está la nuevaRueva)
  • el newRow debe estar enfocado, de modo que los campos de texto muestren la fila nueva (vacía) (contenido)

He intentado:

bindSourceGS.Position = dataGridView1.NewRowIndex;

pero eso no selecciona el newRow de datagridview. Quiero usar el newRow de datagridview porque cuando el usuario presiona el botón cancelar no es necesario que elimine la fila en el Dataset y el datagridview.Rows [i] tiene una propiedad IsNewRow.


Si es Winform entonces puedes usar esto

dataGridView1.FirstDisplayedScrollingRowIndex

y establezca datagridview.CurrentCell en su nueva dirección de celda de fila.

Espero que esto ayude


Nota: Para que FirstDisplayedScrollingRowIndex tenga éxito si tiene filas de altura mixta, debe asegurarse de que la altura de la Plantilla de fila sea al menos igual a la altura de la última fila. Esto es más bien un problema, ya que creo que no se puede establecer una altura de fila mayor que la altura de la Plantilla de fila.


He estado investigando este problema y he descubierto que la configuración de dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.Rows.count-1 funciona bien siempre que la propiedad AutoSizeRowsMode NO esté configurada en DisplayedCells .

Si tiene problemas con la configuración de dataGridView1.FirstDisplayedScrollingRowIndex=dataGridView1.Rows.Count -1 y la cuadrícula no se desplaza al fondo, intente configurar la propiedad AllCells en AllCells .