.net - poner - DataGridView: ¿cómo enfocar toda la fila en lugar de una sola celda?
editar fila datagridview c# (2)
Qué tal si
SelectionMode == FullRowSelect
y
ReadOnly == true
Esto funciona para mi.
Me gustaría utilizar el control DataGridView como una lista con columnas. Algo así como ListView en modo Detalles, pero quiero mantener la flexibilidad de DataGridView.
ListView (con vista Detalles y FullRowSelect habilitado) resalta toda la línea y muestra la marca de enfoque alrededor de toda la línea:
DataGridView (con SelectionMode = FullRowSelect ) muestra la marca de enfoque solo alrededor de una sola celda:
Entonces, ¿alguien sabe de alguna manera (idealmente) fácil de hacer que la selección de fila DataGridView se vea como la de ListView?
No estoy buscando un comportamiento cambiado del control, solo quiero que se vea igual.
Idealmente, sin meterse con los métodos que hacen la pintura real.
Coloque este código en el constructor de su formulario o configúrelo en las propiedades de datagridview utilizando el IDE.
dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dgv.MultiSelect = false;
dgv.RowPrePaint +=new DataGridViewRowPrePaintEventHandler(dgv_RowPrePaint);
A continuación, pegue el siguiente evento en el código del formulario:
private void dgv_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
e.PaintParts &= ~DataGridViewPaintParts.Focus;
}
¡Y funciona! :-)
"dgv" es DataGridView en cuestión y "form" es el Formulario que lo contiene.
Tenga en cuenta que esta mezcla no muestra el rectángulo punteado alrededor de toda la fila. En cambio, elimina los puntos de enfoque por completo.