2013-07-09 44 views
2

我有一個listview控件和幾個子項目。根據記錄,其中一個子項目列的背景顏色爲紅色,橙色或綠色。當選擇該行時,我希望彩色子項保留其背景顏色,而不是用選擇顏色覆蓋。這可能嗎?當選擇行時保持listview項的背景色

+0

那麼,你怎麼會知道選擇哪個項目?而「你」,我的意思是,「你的應用程序的用戶」。 –

+0

WPF或WinForms?在WPF中,您將不得不修改該項目的模板。 – alexandrudicu

+0

它在vb.net winforms中,其他列(子項)將顯示選擇,但這個特定的列不會。 – SHA22A

回答

2

ListView1.OwnerDraw設置爲True

內幕ListView1的的抽獎...事件:

Private Sub ListView1_DrawColumnHeader(sender As Object, e As DrawListViewColumnHeaderEventArgs) Handles ListView1.DrawColumnHeader 
    e.DrawDefault = True ' let System draw this element 
End Sub 

Private Sub ListView1_DrawItem(sender As Object, e As DrawListViewItemEventArgs) Handles ListView1.DrawItem 
    e.DrawDefault = True ' let System draw this element 
End Sub 

Private Sub ListView1_DrawSubItem(sender As Object, e As DrawListViewSubItemEventArgs) Handles ListView1.DrawSubItem 
    If e.ColumnIndex = 2 Then ' only this columnindex we take over the drawing job 
     e.DrawBackground() ' draw the background color 
     e.DrawText() 
    Else ' other subitems, let System draw them 
     e.DrawDefault = True 
    End If 
End Sub 
+0

是的!非常感謝你。它工作的一種享受。你是我的英雄。 – SHA22A