我想实现在的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;
  }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top