visual studio propiedades programar llenar las datos como columnas agregar c# .net winforms listview

studio - Desactivar un ListView en C#, pero aún muestra la selección actual



llenar listview c# (3)

Tengo un control ListView, y estoy tratando de descubrir la forma más fácil / mejor para no permitir cambiar las filas seleccionadas, sin ocultar las filas seleccionadas.

Sé que hay una propiedad HideSelection , pero eso solo funciona cuando el ListView todavía está habilitado (pero no está enfocado). Necesito que la selección se pueda ver incluso cuando el ListView esté desactivado.

¿Cómo puedo implementar esto?


Hay dos opciones, cambiar las filas seleccionadas, colores deshabilitados. O cambie todas las otras filas para simular que están deshabilitadas, excepto la seleccionada. La primera opción es obviamente la más fácil, y la segunda opción obviamente necesitará algunas protecciones adicionales.

De hecho, he hecho la primera opción antes y funciona bastante bien. Solo tiene que recordar cambiar los colores a los valores predeterminados en caso de que se seleccione otra fila más adelante en el proceso.


También podría hacer que ListView ownerdraw. Luego tiene control completo sobre cómo se ven los elementos, ya sea que estén seleccionados o no, o si el ListView mismo está habilitado o no. DrawListViewItemEventArgs proporciona una forma de pedirle a ListView que dibuje partes individuales del elemento para que solo tenga que dibujar los bits que le interesan. Por ejemplo, puede dibujar el fondo del elemento pero dejarlo en ListView para dibujar el texto.


Implementar SelectedIndexChanged y hacer esto

private void listViewABC_SelectedIndexChanged(object sender, EventArgs e) { listViewABC.SelectedItems.Clear(); }