Hi,
ich benötigen einen Shortcut, welcher auf z.B. Strg+12 reagieren soll.
Wie kann ich die 12 abfangen, denn C# nimmt ja nur e.Control && e.KeyCode == Keys.D1
Danke schön
padde
Hallo,
meinst du das gleichzeitige Drücken der Tasten '1' und '2' oder nacheinander, also Ctrl+1 und dann Ctrl+2?
Hi,
ich meinte
CTRL halten
1 drücken, loslassen
2 drücken, loslassen
CTRL loslassen
Dann hätte ich gerne die 12 gesendet.
Danke
padde
Hallo padde77,
für dieses Vorgehen könntest Du ein DateTime Field missbrauchen, sobald der Benutzer STRG +1 Drückt setzt du das Field auf DateTime.Now und sobald die 2 gedrückt wird prüfst Du die Zeit die seit dem vergangen ist und wenn das alles in einem von Dir definierten Intervall liegt führst Du deine Aktion aus.
Viele Grüße
Lars
denn C# nimmt ja nur e.Control && e.KeyCode == Keys.D1
Nicht nur. Es nimmt auch Dinge wie Keys.D2, womit du die 2 abfangen kannst 😃
Nachdem es verschiedene Tasten sind, gibts auch verschiedene Events dafür. Du müsstest also wie bereits genannt selber herausfinden ob 1 und 2 in passendem Abstand hintereinander gedrückt wurden.
Und am besten auch ob dazwischen was anderes gedrückt wurde.
Hallo zusammen,
es kommt wohl nicht nur auf die zwischen den Tastendrücken verstrichene Zeit an, sondern anscheinend auch oder vielleicht sogar nur, ob die CTRL-Taste die ganze Zeit gedrückt war. Das kann man herausfinden, indem man in KeyDown und KeyUp auch Drücken und Loslassen der Ctrl-Taste für sich alleine abfragt und "mitrechnet".
Ohne das könnte man nicht unterscheiden, welche der beiden Sequenzen benutzt wurde:
CTRL halten
1 drücken, loslassen
2 drücken, loslassen
CTRL loslassen
oder
CTRL halten
1 drücken, loslassen
CTRL loslassen
CTRL halten
2 drücken, loslassen
CTRL loslassen
Aber es bleibt natürlich dabei, dass das Drücken der Tasten 1 und 2 zwei verschiedene KeyDown-Events produziert, was man in jedem Fall berücksichtigen muss.
Insgesamt fällt das Ermitteln von Tastendrücken und auch -sequenzen unter [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
herbivore