26# Winform ListView Focus 잃었을 때도 선택 고정
ListView를 사용할 일이 생겼는데, 포커스를 잃었을 때 선택 내용이 너무 눈에 띄지 않는다.
그러다가 양형 코드를 찾아봤는데 뭔가 흠... 한국 사이트 코드를 찾았을땐 이건 아닌거 같아서 대충 만들어 봤다.
누군가에겐 도움이 되길.
private void ListView_LostFocus(object sender, EventArgs e) { ListView listView = sender as ListView; listViewLastIndex = listView.FocusedItem.Index;
for (int i = 0; i < listView.Items.Count; i++) { listView.Items[i].BackColor = SystemColors.Window; listView.Items[i].ForeColor = SystemColors.WindowText; }
if (listView.FocusedItem != null) { listView.FocusedItem.BackColor = SystemColors.Highlight; listView.FocusedItem.ForeColor = SystemColors.HighlightText; } }
private void ListView_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { if(listViewLastIndex > -1) { ListView listView = sender as ListView;
listView.Items[listViewLastIndex].BackColor = SystemColors.Window; listView.Items[listViewLastIndex].ForeColor = SystemColors.WindowText;
if (listView.FocusedItem != null) { listView.FocusedItem.BackColor = SystemColors.Highlight; listView.FocusedItem.ForeColor = SystemColors.HighlightText; listViewLastIndex = listView.FocusedItem.Index; } } } |