How to assign hotkeys (stortcuts) to C# Windows Forms Controls?
In the age of web development, programming C# WinForms applications are kind of outdated, but still, many software programmers are involved in developing legacy desktop applications, which will definitely be used for years from now on. Sometimes it is easier to develop a simple WinForms application that is self-sufficient and will just work by itself rather than pay rent for Microsoft Azure or Amazon AWS every month. So, the questions regarding these applications are still actual and demanded.
When you build a form, the user is required to use the mouse to control it: click the buttons, edit text boxes, checkboxes, etc. But what if you need your form to be controlled just by the keyboard? Is it possible to press a hotkey and activate a specific control in the WinForms application? The answer is yes, and it is quite simple.
To allow WinForms control to be activated by keyboard, you just need to assign a shortcut for it. How to do this? Just add an ampersand sign ( & ) before the text or label letter you want the control to react to. For example, label the button &Edit and it will react to the Alt+E shortcut. Note this applies to the Label or Text of the control, not to the variable name. This is the paradigm the Microsoft Word. Excel and other Office applications use. Now the shortcut letters will be underlined when you press Alt on the keyboard. Of course, you are able to assign only one shortcut to a button. Assigning the same shortcuts to several controls is ambiguous, but you can use any letter in the label to be a shortcut. For example, once you have &Edit, you can have E&xit buttons with Alt+E and Alt+X shortcuts respectively. You can assign a shortcut to a Label control, in such a case next tab-ordered control will be activated. To edit the tab-order select View->Tab order from the main Visual Studio menu when you are on a form designer.