well i think to achieve your desired objective you might have to use all three key related events i.e. KeyUp, KeyDown and KeyPress. now, declare a global boolean variable lets say:
Private isAltKeyDown As Boolean
now, when any key is pressed down, KeyDown event will be fired. to detect if an Alt key is down pressed, place similar code in KeyDown event handler:
If e.KeyCode = Keys.Alt Then
isAltKeyDown = True
while Alt key is pressed down if user presses any button, two events will be fired; KeyUp and KeyPress. In KeyPress you can detect the key pressed and perform the function accordingly by placing similar code in KeyPress event:
If isAltKeyDown Then
Select Case e.KeyChar
Now, if Alt or any key is released after pressing down then of course KeyUp event is fired so in KeyUp event place this single line of code:
If e.KeyCode = Key.Alt Then
isAltKeyDown = False
well fellow i hope you will get some logic to work on this. i am not sure about the code because i am out of programming these days anyway, the basic need was to give you an idea.
Putting the ampersand in a MenuItem or a Label is called a mnemonic. To use a mnemonic assigned to a MenuItem that item must be visible. This means to select the Open item on a File menu you would have to press and hold Alt, then press F and then O. The alternative is to assign a key combination to the Shortcut property of a MenuItem. It cannot be just Alt+, but the MenuItem does not have to be visible for it to be activated.
There is component Delphi, an ActionList. It very usefull for shortcuts handling. I found analog for Windows Forms, but it costs $40 http://nxsharp.com/overview/features/
The fully-functional demo is free, but time-limit