Guten Tag. Ich habe ein sehr simples Problem, welches ich gerade nicht lösen kann.
Dieser Code soll einfach nur einen Label Text + 1 rechnen aber nur einmal wenn die Taste "Page Up" runtergedrückt wurde. Es klappt auch teilweise, nur kommt jetzt das Problem: Beim nicht mehr drücken des Keys, wird der nächste klick auf Page Up einfach ignoriert. Der Klick danach jedoch geht wieder. Also muss ich immer zwei mal auf Page Up klicken, damit der Counter einmal +1 geht. Der Code läuft über einen Timer der jede Millisekunde ausgelöst wird (zu Testzwecken). Ich finde im Internet auch Lösungen, aber die Lösung scheint bei mir nicht zu klappen (isPressedKeyPageUp als Flag nutzen).
Was mache ich falsch?
C#-Quellcode
- bool isPressedKeyPageUp = false;
- private void timer1_Tick(object sender, EventArgs e)
- {
- if (Keyboard.GetKeyStates(Key.PageUp) == KeyStates.Down && !isPressedKeyPageUp)
- {
- lblCount.Text = (int.Parse(lblCount.Text) + 1).ToString();
- isPressedKeyPageUp = true;
- }
- else if (Keyboard.GetKeyStates(Key.PageUp) == KeyStates.None && isPressedKeyPageUp)
- {
- isPressedKeyPageUp = false;
- }
- }
Dieser Code soll einfach nur einen Label Text + 1 rechnen aber nur einmal wenn die Taste "Page Up" runtergedrückt wurde. Es klappt auch teilweise, nur kommt jetzt das Problem: Beim nicht mehr drücken des Keys, wird der nächste klick auf Page Up einfach ignoriert. Der Klick danach jedoch geht wieder. Also muss ich immer zwei mal auf Page Up klicken, damit der Counter einmal +1 geht. Der Code läuft über einen Timer der jede Millisekunde ausgelöst wird (zu Testzwecken). Ich finde im Internet auch Lösungen, aber die Lösung scheint bei mir nicht zu klappen (isPressedKeyPageUp als Flag nutzen).
Was mache ich falsch?