2010-03-27 15 views

Antwort

1

ObjectListView - ein Wrapper um eine WinForm-ListView - verfügt über Eigenschaften, mit denen Sie die Hintergrund- und Vordergrundfarbe der ausgewählten Zeilen steuern können. Es verwendet die Technik, die Obalix vorgeschlagen hat, aber es hat bereits die harte Arbeit für Sie getan.

Also, mit einer wenig Mühe, Sie so etwas wie diese produzieren können:

alt text

Das "Feel Good Inc" Zeile zeigt einen benutzerdefinierten Vordergrund- und Hintergrund für die Auswahl.

+2

'ObjectListView' ist kein Drop-In-Ersatz für' ListView'. Ein Refactoring des vorhandenen Codes kann erforderlich sein, um es zu verwenden. –

+0

Ich analysierte dieses Projekt. Aber ich denke, es ist zu schwer zu lernen. –

+0

Diese Antwort ist genau das, was Sie brauchen: http://stackoverflow.com/a/5188225/1317040 – cnlevy

2

Gut für WinForms müssen Sie die OwnerDraw Eigenschaft auf True setzen und dann die DrawItem und DrawSubItem Ereignisse verwenden, um das Element manuell zu zeichnen.

See here für ein Beispiel.

7

Wenn Sie Ihren ListView haben den Stil des Windows Explorer ListView (einschließlich der schönen Optik mit abgerundeten Kanten in Win7/Vista) wollte man ein wenig P verwenden könnte/Invoke das erreichen:

[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

Funktioniert auch auf TreeView! +1 –

Verwandte Themen