Frage

Ich möchte einige individuelle Verhalten von Space Schlüssel in einem implementieren Listview . Grundsätzlich würde Ich mag ausgewählten Status der Position unter dem Cursor wechseln - das sollte ziemlich einfach sein

this.FocusedItem.Selected = !this.FocusedItem.Selected;

aber leider tut es auch die Standardaktion, die ist, um der fokussierte Punkt. Auf diese Weise vermag ich nicht zu ‚deaktivieren‘ den fokussierten Punkt. Ich habe ähnliche Probleme gesucht und sie schlagen vor, mit PreviewKeyDown Ereignis, in dem ich die Schlüssel verarbeiten würde und die Listview nicht zulassen seine Standardaktion zu tun. Aber das PreviewKeyDown Ereignis Argument hat keine „unbehandelt“ Eigenschaft, so kann ich nicht ‚essen‘ diese Taste.

War es hilfreich?

Lösung

Das funktioniert, wie man wollte:

private void listView1_KeyDown(object sender, KeyEventArgs e) {
  if (e.KeyData == Keys.Space) {
    listView1.FocusedItem.Selected = !listView1.FocusedItem.Selected;
    e.Handled = e.SuppressKeyPress = true;
  }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top