Forums Neueste Beiträge
 

Tastendruck mit 3 Tasten abfragen

20/12/2009 - 15:33 von Robert Spence | Report spam
Hallo NG,

ich habe folgendes Problem:
Ich mochte ein Ereignis (etc.) über Tastendruck auslösen. Mein problem
besteht nun darin, dass ich bsplw. Strg + Shift + P verwenden möchte,
jedoch an den 3 Key Zuweisungen scheitere :-( Mit zwei Tasten ist das
Ganze kein Problem.
Ich habe die Abfrage in KeyPress und KeyDown, jeweils versuchsweise
gesetzt - leider ohne das gewünschte Ergebnis (... = Platzhalter)

Kann mir jemand hier weiterhelfen bzw. sagen was ich hier falsch mache,
habe schon gegooglet aber leider nichts wirklich gefunden


Mit zwei Tasten (Funktioniert einwandfrei)
if ((Control.ModifierKeys == Keys.Control) && (e.KeyCode == Keys.P))
{
...
}

Und das Ganze mit 3 Tasten (funktioniert leider nicht)
if ((Control.ModifierKeys == Keys.Control) && (Control.ModifierKeys ==
Keys.Shift) && (e.KeyCode == Keys.P))
{
...
}

Viele grüße
Robert
 

Lesen sie die antworten

#1 Frank Dzaebel
20/12/2009 - 18:09 | Warnen spam
Hallo Robert,

KeyPress, KeyDown [...] Mein problem besteht nun darin, dass ich
bsplw. Strg + Shift + P verwenden möchte, [...]



Für KeyDown beispielsweise:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.Shift && e.KeyCode == Keys.P)
MessageBox.Show("Es wurde [STRG-SHIFT-P] eingegeben.");
// Beachte, auch [STRG-SHIFT-ALT-P] würde hier u.a. true liefern.
}
___________

Für KeyPress beispielsweise:

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((Control.ModifierKeys & Keys.Shift) != Keys.Shift) return;
if ((Control.ModifierKeys & Keys.Control) != Keys.Control) return;
if ((int)e.KeyChar == (int)Keys.P - 64)
MessageBox.Show("Es wurde [STRG-SHIFT-P] eingegeben.");
}
//.. weil die Control- und die Shift-Taste den KeyChar veràndert.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen