#636 – Keyboard Events that Fire When A Key Is Held Down
August 30, 2012 3 Comments
When you hold a key down in Windows, the key begins to repeat after a short delay, as if you you were repeatedly pressing it.
While a key is held down, the PreviewKeyDown, KeyDown and PreviewTextInput events will fire repeatedly.
You can detect whether a keypress is the original/first keypress, or one of the repeats, by checking the KeyEventArgs.IsRepeat property.
Let’s say we press the ‘a’ key while a TextBox has focus and hold it down long enough for three ‘a’ characters to be inserted. We’ll get the following events:
- PreviewKeyDown, Key = A, IsRepeat = False
- KeyDown, Key = A, IsRepeat = False
- PreviewTextInput, Text = a
- (TextBox contains “a”)
- PreviewKeyDown, Key = A, IsRepeat = True
- KeyDown, Key = A, IsRepeat = True
- PreviewTextInput, Text = a
- (TextBox contains “aa”)
- PreviewKeyDown, Key = A, IsRepeat = True
- KeyDown, Key = A, IsRepeat = True
- PreviewTextInput, Text = a
- (TextBox contains “aaa”)
- PreviewKeyUp, Key = A, IsRepeat = False
- KeyUp, Key = A, IsRepeat = False