2011-10-05 161 views
1

列表視圖中選擇項目改變顏色爲灰色

當鼠標點擊到另一個控制,我選擇的項目變了顏色爲灰色,不是藍色的。我希望它始終顯示所選項目(如ListBox控件)的藍色。

我該怎麼辦?

+2

你應該標記這個「贏形式」或「世界糧食計劃署」或什麼都(我assum形式?) – Ricibob

+0

在Web應用程序或窗口應用程序......在請註明此你的問題上。 – sikender

回答

4

希望您正在尋找HideSelection財產。 HideSelection屬性默認爲True。如果將此設置爲false,即使列表視圖失去焦點,選定的項目也會突出顯示。

ListView1.HideSelection = false; 

獲取或設置指示當控制失去焦點在 控制遺體所選擇的項目是否突出顯示的值。

當該屬性被設置爲假,選擇的項目在ListView 控制以不同的顏色比當所述的ListView 控制失去焦點操作系統指定的當前 選擇色保持高亮顯示。當用戶單擊窗體上的其他控件 或移動到其他窗口時,您可以使用此屬性來保持用戶選擇的項目爲 。

0

試試這個,

foreach (ListViewItem item in listView1.SelectedItems) 
{ 
    item.ForeColor = Color.Gray; 
} 
+0

_always顯示藍色_ ... Ehh ?? –

2

你可以嘗試通過從原始ListView控件inherting創建自己的ListView控件,然後重寫DefWndProc並輸入以下代碼:

protected override void DefWndProc(ref Message msg) 
{ 
    if (msg.Msg != 8) 
     base.DefWndProc(ref msg); 
} 
1

爲了保持列表視圖藍色的選擇項上單擊另一個控制時,請執行以下操作:

  1. 設置listView屬性HideSelection = True,因此係統不會覆蓋您的顏色。

  2. 對於未選中的項 - 指定爲白色背景色和黑色爲前景色在ListView的SelectedIndexChanged(見下例)

  3. 對於選定項 - 指定爲藍色背景色和白色的前景色在ListView的SelectedIndexChanged(見下例)

    For n = 0 To lvwExplPlot.Items.Count - 1 
    
        'UNSELECTED 
        If lvwExplPlot.Items.Item(n).Selected = False Then 
         lvwExplPlot.Items.Item(n).BackColor = Drawing.Color.White 
         lvwExplPlot.Items.Item(n).ForeColor = Drawing.Color.Black 
    
        'SELECTED 
        Else 
         lvwExplPlot.Items.Item(n).BackColor = Drawing.Color.DodgerBlue 
         lvwExplPlot.Items.Item(n).ForeColor = Drawing.Color.White 
        End If 
    Next 
    
相關問題