2010-03-27 34 views

Respuesta

1

ObjectListView - un contenedor alrededor de un ListView de WinForm - tiene propiedades que le permiten controlar el fondo y el color de primer plano de las filas seleccionadas. Utiliza la técnica sugerida por Obalix, pero ya ha hecho el trabajo duro por ti.

Así que, con un poco de esfuerzo, puede producir algo como esto:

alt text

El "Feel Good Inc" fila muestran un primer plano y de fondo para la selección.

+2

'ObjectListView' no es un reemplazo directo para' ListView'. Es posible que se requiera cierta refacturación del código existente para usarlo. –

+0

He analizado este proyecto. Pero creo que es muy difícil de aprender. –

+0

Esta respuesta es exactamente lo que necesita: http://stackoverflow.com/a/5188225/1317040 – cnlevy

2

Bueno para WinForms debe establecer la propiedad OwnerDraw en verdadero y luego usar los eventos DrawItem y DrawSubItem para dibujar el elemento manualmente.

See here para un ejemplo.

7

Si quería que su ListView tener el estilo del Explorador de Windows ListView (incluyendo el aspecto agradable con bordes redondeados en Win7/Vista), se puede usar un poco de P/Invoke para lograr eso:

[DllImport("uxtheme.dll", CharSet = CharSet.Unicode, ExactSpelling = true)] 
internal static extern int SetWindowTheme(IntPtr hWnd, string appName, string partList); 

// You can subclass ListView and override this method 
protected override void OnHandleCreated(EventArgs e) 
{ 
    base.OnHandleCreated(e); 
    SetWindowTheme(this.Handle, "explorer", null); 
} 
+0

¡También funciona en TreeView! +1 –

Cuestiones relacionadas