Click here to Skip to main content
15,944,958 members
Articles / Desktop Programming / Windows Forms
Tip/Trick

Implementing shortcut keys for toolstrip

Rate me:
Please Sign up or sign in to vote.
3.50/5 (2 votes)
21 Aug 2011CPOL 37.8K   3   1
How to activate a toolstrip button via a shortcut key
The first time I used the toolstrip, I was surprised by the fact that toolstrip buttons don't have a shortcut key attribute. Luckily there is a simple workaround.

First, create the button handlers for the toolstrip. E.g.

C#
private void btnOk_Click(object sender, EventArgs e) {
  Accept = true;
  Close();
}

private void btnCancel_Click(object sender, EventArgs e) {
  Close();
}


Next, implement the KeyDown event handler for the form. In the following example, Ctrl+Enter is used to activate the OK button and Escape to activate the Cancel button.

C#
private void RenameF_KeyDown(object sender, KeyEventArgs e) {
  if (e.Control == true && e.KeyValue == 13) {
    btnOk_Click(sender,null);
  }
  if (e.KeyValue == 27) {
     btnCancel_Click(sender, null);
  }
}


Finally, you must set the form's KeyPreview attribute to true. This has to be done in order to have the keyPress event from the child controls passed to the form's handler.

C#
private void MainF_Load(object sender, EventArgs e) {
  this.KeyPreview = true;
}


That's it!

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior) Self-employed
Mexico Mexico
Senior SAP Consultant ( ABAP / MM / Workflow ).
Delphi Developer
C# Asp Developer

Comments and Discussions

 
GeneralReason for my vote of 3 Not bad for custom buttons, but ther... Pin
KenBonny22-Aug-11 21:09
KenBonny22-Aug-11 21:09 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.