覆盖.NET的WinForms ListView的空格键的默认行为
题
我想实现在的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;
}
}
不隶属于 StackOverflow