Frage

Ich bin ein KeyDown Ereignis Trapping und ich muss in der Lage sein zu überprüfen, ob die aktuellen Tasten nach unten gedrückt sind: Strg + Umschalttaste + M ?


Ich weiß, ich brauche die e.KeyData vom KeyEventArgs, die Keys Enum und etwas mit Enum-Flaggen und Bits zu verwenden, aber ich bin nicht sicher, wie für die Kombination zu überprüfen.

War es hilfreich?

Lösung

Sie müssen die Modifikatoren verwenden Eigenschaft der KeyEventArgs Klasse.

So etwas wie:

//asumming e is of type KeyEventArgs (such as it is 
// on a KeyDown event handler
// ..
bool ctrlShiftM; //will be true if the combination Ctrl + Shift + M is pressed, false otherwise

ctrlShiftM = ((e.KeyCode == Keys.M) &&               // test for M pressed
              ((e.Modifiers & Keys.Shift) != 0) &&   // test for Shift modifier
              ((e.Modifiers & Keys.Control) != 0));  // test for Ctrl modifier
if (ctrlShiftM == true)
{
    Console.WriteLine("[Ctrl] + [Shift] + M was pressed");
}

Andere Tipps

Ich denke, die einfachste diese verwenden:

if(e.KeyData == (Keys.Control | Keys.G))

Sie können prüfen, eine Technik ähnlich der folgenden verwenden:

if(Control.ModifierKeys == Keys.Control && Control.ModifierKeys == Keys.Shift)

Dies in Kombination mit den normalen Schlüsselkontrollen gibt Ihnen die Antwort, die Sie suchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top