I\'d like to create keyboard shortcuts for some controls in my Windows Forms application.
Example:
Type &File
or &Edit
and you will get underline. That will automatically bind underlined letters with Alt
keyword for shortcut.
EDIT.
You question has modified so I'd like to keep up with my answer. You would like to catch some keys combination (Alt + F
) and set a focus to the text box.
You may try this solution using KeyDown event of the main form.
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Alt && e.KeyCode == Keys.F)
{
this.textBox1.Focus();
}
}
To achieve this, you have to additionally set KeyPreview property of the form to true
.
this.KeyDown += new KeyEventHandler(Form1_KeyDown);
void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Alt && e.KeyCode == Keys.W)
{
btnShowConstructionCdFun();
}
}
When the label receives focus from pressing its accelerator key (set using the &
), it forwards the focus to the next control in the tab order, since labels are not editable. You need the textbox to be next control in the tab order.
To view and correct the tab order of your form, use the View + Tab Order command in the IDE. Using TabPages or other containers adds a level of nesting to the tab order (e.g., 1.1
, 1.2
instead of just 1
and 2
), but if the label and textbox are within the same container it shouldn't be too hard to set properly.