c# - validar - DatagridView no muestra el icono de error o el texto de error?
validar datagridview vacio vb net (11)
Creo que los errores solo se mostrarán en la edición. Lo que podría hacer es agregar una columna bool a su DataTable, que controla la visualización de una imagen / columna personalizada en DataGridView, lo que refleja si hay un error o no.
Tengo un formulario de ganar (c #) con una vista de cuadro de datos. Establecí el origen de datos de la grilla en una tabla de datos.
El usuario desea verificar si existen datos en la tabla de datos en otra fuente, de modo que recorremos la tabla comparando las filas con la otra fuente y configuramos el rowerror en la tabla de datos en un mensaje corto. La vista de cuadrícula de datos no muestra estos errores. El errortexto en los datagridviewrows está configurado, pero no se muestra ningún error.
¿Estoy esperando demasiado para que se muestren los errores y solo se muestran en el contexto de la edición de los datos en la cuadrícula?
He estado jugando con esto por un día y busqué a alguien que haya publicado un problema simalar en vano, ¡ayuda!
Esto es un poco tarde para el póster original, pero aquí lo resolvió para mí ...
Verifique la altura de la fila . Si es menos de 19 , no dibujará el ícono. Intente configurarlo un poco más para ver si ese es el problema.
grid.RowTemplate.Height = 22
Si configura e.Cancel en True, el icono no se muestra. Lo cual no le permite al usuario saber que existe un problema en esa línea.
En caso de que alguien más todavía esté buscando en la actualidad: la solución que funcionó para mí fue reasignar el (mismo) DataSource al DataGridView, y llamar al método Refresh en la grilla después de haber establecido las propiedades RowError.
(Código VB.Net :)
myDataGridView.DataSource = myDataSet.Tables(0)
myDataGridView.Refresh()
Después de hacer eso, finalmente se muestran los RowError recién asignados.
Enviar una tecla ESC te obligará a mostrar (al menos funcionó para mí)
SendKeys.Send("{ESC}");
Una razón más por la que el icono de error no se muestra es, si el tamaño del encabezado de la fila es demasiado pequeño. De forma predeterminada, es 46. Si por algún motivo establece el encabezado de fila en un tamaño más pequeño, como 30, el icono de error no se mostrará.
Compruebe la propiedad dgv.ShowRowErrors
.
Compruebe que AutoSizeRowsMode
está establecido en DataGridViewAutoSizeRowsMode.None
. Descubrí que el Errortext
vista previa Errortext
la fila no se muestra cuando AutoSizeRowsMode
no tiene el valor predeterminado de ninguno.
DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None
Experimenté un problema similar al validar la entrada del usuario en el
private void gridGrid_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
entrenador de animales. El problema fue que configuré e.Cancel=true
en caso de entrada no válida.
DataGridView
debe estar visible en el momento en que se establece la propiedad ErrorText
.
Si está utilizando Visual Studio 2017 y sus datos no están vinculados a una fuente de datos, entonces debe establecer el ErrorTexto en la celda en lugar de la fila, así:
gvwWebsites.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = "You have already used that address.";