1
의 사용자 정의 동작을 구현하고 싶습니다. 키를 ListView에 입력하고 싶습니다. 포커스 항목을 선택 입니다.net WinForms ListView에서 스페이스 키의 기본 동작을 재정의하십시오.
this.FocusedItem.Selected = !this.FocusedItem.Selected;
하지만 슬프게도, 그것은 또한 수행의 기본 동작, 매우 간단합니다 - 기본적으로 나는 커서 아래 항목의 선택 상태를 전환하고 싶습니다. 이렇게하면 집중된 항목을 '선택 해제'할 수 없습니다. 나는 비슷한 문제를 찾았으며 그들은 PreviewKeyDown 이벤트를 사용하는 것이 좋습니다.이 이벤트에서는 키를 처리하고 ListView가 기본 동작을 수행하지 못하도록합니다. 그러나 PreviewKeyDown 이벤트 인수에는 "처리 된"속성이 없으므로이 키를 '먹을 수 없습니다'.
이 작품private void listView1_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyData == Keys.Space) {
listView1.FocusedItem.Selected = !listView1.FocusedItem.Selected;
e.Handled = e.SuppressKeyPress = true;
}
}
, 감사 : 당신이 원하는대로 – Axarydax