2012-12-14 9 views
8

Ich möchte eine Sequenzverknüpfung für das Programm haben, das ich entwickle (in C# .net), um auf verschiedene Tasten im Menüsystem zuzugreifen.Tastenkombinationen für Menü

Zum Beispiel: Ctrl + W, O

Zuerst wird der Benutzer Ctrl + W, gefolgt von O

Visual Studio drücken würde verwendet diese Methode für einige seiner Menüverknüpfungen.

Wenn ich ein Menü aber bin der Bearbeitung, ich bin beschränkt sich auf nur eine Abkürzung Ctrl +W oder nur O, ich kann sie nicht sequenzieren.

Kann dies mit dem vorhandenen Framework geschehen?

Antwort

2

einfach können Sie dies tun:

private void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (previousKeyEvent != null) 
    { 
    if (previousKeyEvent.Modifiers == Keys.Control && previousKeyEvent.KeyCode == Keys.W && e.KeyCode == Keys.O) 
    { 
     MessageBox.Show("Ctrl + W then O"); 
    } 
    else 
    { 
     MessageBox.Show("Not handled"); 
     previousKeyEvent = null; 
    } 
    else 
    previousKeyEvent = e; 
    } 
} 

Things

  • Einzeltastenkombinationen zu berücksichtigen - die ohne Rahmen eines vorherigen Schlüsselereignis Handhabung.
  • Ein Etikett, das anzeigt, dass Sie auf die Benutzereingabe warten, genau wie Visual Studio.
  • Verwenden der ShortCutKeyDisplayString-Eigenschaft, um die benutzerdefinierte Verknüpfung neben dem Menüelement anzuzeigen.
+0

Dies würde leider viel mehr Aufwand zu implementieren, als ich bereit bin zu machen. Ich hätte aber überlegt, wenn nicht im Menü, dass es nicht als Tastenkürzel angezeigt wird. – Randomman159

+0

@ Randomman159 Wenn Sie nicht bereit sind, sich zu bemühen, etwas zu erreichen, was Sie tun müssen - als Entwickler werden Sie mit vielen Aufgaben, die Sie sich selbst gesetzt haben, wahrscheinlich nicht weit kommen. – LukeHennerley

+0

Das ist kaum was ich meinte. Ich werde versuchen, umzuformulieren. Eine der Prioritäten in diesem Problem besteht darin, den Shirtcut neben dem Element im Menü anzuzeigen. Wenn ein Benutzer es wiederholt verwendet, wird ihm die Verknüpfung direkt angezeigt. Als Ihre Lösung, diese Priorität nicht beinhaltet, wenn ich es implementieren würde, wäre es nur vorübergehend. Angesichts der großen (sehr großen) Menge an erforderlichen Kombinationsschlüsseln scheint es eine unziale Menge an Arbeit für eine vorübergehende Lösung zu sein. Wenn es eine Möglichkeit gibt, die angezeigten Verknüpfungen im Menü zur Laufzeit zu ändern, wäre diese Lösung jedoch großartig. – Randomman159

Verwandte Themen