tags:

views:

779

answers:

3

I'm creating a routine that allows the user to replicate keyboard shortcuts into a textbox for 'custom keyboard shortcuts' customization, but every time the alt key is pressed with another letter, it produces another sound.

I'm capturing the keys in the textbox_keydown event to parse the modifiers + other keys into a readable Shift + A or Ctrl + Shift + B manner into that very same textbox. Should I be doing this in a different event like textbox_previewkey instead of textbox_keydown? How can I prevent the alt modifier key + a letter or number causing the Beep sound?

the textbox is just a normal .net 3.5 textbox with the only edited properties of it being the ReadOnly property to false. Is there a better way I could re-do this?

I'm currently just checking that if any modifiers keys are pressed and then + a-z or 0-9, then to go ahead and input the appropriately pressed keys into that same textbox like Shift + A or Ctrl + Shift + Y.

A: 

You need to set e.Handled = true; in order to prevent the keystroke from bubbling up.

Adam Robinson
HI I had the same problem, e.Handled = true didn't solve the problem. e.SuppressKeyPress = true did it.
Jonathan
A: 

Disregard, I was able to solve the problem by suppressing the keycode right from the start without affecting it's normal functions. Here is what I used.

e.SuppressKeyPress = (e.KeyCode == e.KeyCode);

You realize that this is the same as saying e.SuppressKeyPress = true, right?
Adam Robinson
A: 

Handle the KeyDown event of the TextBox, e.g. with void HandleKeyDown(object source, KeyEventArgs e) and set e.SuppressKeyPress = true; if ALT is pressed.

(also works for the Return key)

Cheers, tamberg

tamberg
(just to clean up M. Johnson's answer as I can't edit it)
tamberg