Wie Verwenden mehrerer Änderungsschlüssel in C #
Ich bin mit einem keydown-Ereignis zu erkennen, die Tasten gedrückt und haben verschiedene Tastenkombinationen für verschiedene Operationen.
if (e.KeyCode == Keys.C && e.Modifiers == Keys.Control && e.Modifiers == Keys.Shift)
{
//Do work
}
else if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control)
{
//Paste
}
Aus irgendeinem Grund die Tasten-Kombination in die ich drücken Sie Strg + Shift + C funktioniert nicht. Ich habe wieder bestellt, und platziert es auf die Spitze denken, es könnte sein, Störungen aus der Strg + C, und sogar entfernt die Strg + C, um zu sehen, wenn es war ein problem verursacht. Es funktioniert immer noch nicht. Ich weiß, es ist wahrscheinlich etwas sehr einfaches, aber kann nicht ganz begreifen, was es ist. Alle meine 1 Modifikator + 1 Tastenkombination, die funktioniert Prima, sobald ich einen zweiten Modifikator ist, wenn es nicht mehr funktioniert.
InformationsquelleAutor der Frage jsmith | 2009-09-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort Rom
Haben Sie versucht
e.Modifiers == (Keys.Control | Keys.Shift)
?InformationsquelleAutor der Antwort Chris J
Wenn Sie zulassen möchten, Strg - und Shift - dann verwenden Sie das bitweise ODER (wie
Keys
ist einFlags
enum)Diese fehl, wenn Alt gedrückt wird, als auch
InformationsquelleAutor der Antwort JDunkerley
Andere Möglichkeit wäre, einen unsichtbaren Menüpunkt zuweisen Strg + Shift + C Verknüpfung, um es, und Griff die Veranstaltung gibt.
InformationsquelleAutor der Antwort Druid
InformationsquelleAutor der Antwort Stephane Ehret
Dies ist, was ich für einen Strg+Z - Undo und Strg+Shift+Z Redo-Betrieb und es funktionierte.
InformationsquelleAutor der Antwort Chris
Versuchen. Sollten sich so Verhalten, wie Sie es wollen, und es ist ein wenig einfacher.
InformationsquelleAutor der Antwort Donut
Sehen, da sonst niemand Sie erwähnt, werde ich nur verlassen Sie den Vorschlag, KeyEventArgs.Eckdaten:
Dies sollte nur handeln bestimmter Tasten-Kombinationen, wenn die Reihenfolge der Modifikatoren scheinen nicht zu der Materie, die erste ist immer die zuletzt gedrückte Taste.
Und e.Handled = true sollte es aufhören, wenn ich nicht wissen, wie die mechanik dahinter.
InformationsquelleAutor der Antwort Martin