[英]Change WinForms' ListView selected and unfocused highlight color
我想將ListViewItem的突出顯示顏色設置為與ListView當前處於焦點狀態相同的顏色,即使不是。
將HideSelection屬性設置為False后,當我選擇一個項目然后將焦點放在另一個視圖上時,該顏色將變灰。 我要禁用此功能。
我怎樣才能做到這一點?
與此WPF相關的問題類似(包括用於演示的屏幕截圖): WPF ListView非活動選擇顏色
由於Windows Forms ListView沒有SelectionBackColor
或此類屬性(據我所知),我認為最簡單的方法是:
將listview的HideSelection
屬性設置為true
,然后:
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
this.listView1.Items.Cast<ListViewItem>()
.ToList().ForEach(item =>
{
item.BackColor = SystemColors.Window;
item.ForeColor = SystemColors.WindowText;
});
this.listView1.SelectedItems.Cast<ListViewItem>()
.ToList().ForEach(item =>
{
item.BackColor = SystemColors.Highlight;
item.ForeColor = SystemColors.HighlightText;
});
}
與Reza相同,但效率更高:
private void uxListViewTest_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) {
if (e.IsSelected) {
e.Item.BackColor = SystemColors.Highlight;
e.Item.ForeColor = SystemColors.HighlightText;
}
else {
e.Item.BackColor = BackColor;
e.Item.ForeColor = ForeColor;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.