C#實現(xiàn)快捷鍵自定義設(shè)置
項目開發(fā)過程中,需要實現(xiàn)類似有道詞典的軟件設(shè)置中的自定義快捷鍵功能,如下圖所示:

當(dāng)我們相繼按下Ctrl+Alt+M的時候,軟件就會自動將快捷鍵顯示在文本框中。
最終的效果如下圖所示:

核心代碼如下所示:
PRivate void keyDown(object sender, KeyEventArgs e){ StringBuilder keyValue = new StringBuilder(); keyValue.Length = 0; keyValue.Append(""); if (e.Modifiers != 0) { if (e.Control) keyValue.Append("Ctrl + "); if (e.Alt) keyValue.Append("Alt + "); if (e.Shift) keyValue.Append("Shift + "); } if ((e.KeyValue >= 33 && e.KeyValue <= 40) || (e.KeyValue >= 65 && e.KeyValue <= 90) || //a-z/A-Z (e.KeyValue >= 112 && e.KeyValue <= 123)) //F1-F12 { keyValue.Append(e.KeyCode); } else if ((e.KeyValue >= 48 && e.KeyValue <= 57)) //0-9 { keyValue.Append(e.KeyCode.ToString().Substring(1)); } this.ActiveControl.Text = ""; //設(shè)置當(dāng)前活動控件的文本內(nèi)容 this.ActiveControl.Text = keyValue.ToString();}private void keyUp(object sender, KeyEventArgs e){ string str = this.ActiveControl.Text.TrimEnd(); int len = str.Length; if (len >= 1 && str.Substring(str.Length - 1) == "+") { this.ActiveControl.Text = ""; }}
| 字符 | e.KeyValue |
| a-z|A-Z | 65-90 |
| F1-F12 | 112-123 |
| 0-9 | 48-57 |
| PageUp | 33 |
| PageDown | 34 |
| End | 35 |
| Home | 36 |
| 左(←) | 37 |
| 上(↑) | 38 |
| 右(→) | 39 |
| 下(↓) | 40 |
接著,為textbox控件分別設(shè)置_KeyDown和_KeyUp事件,并在其中調(diào)用以上2個核心函數(shù)。
如下所示:
private void textBox1_KeyDown(object sender, KeyEventArgs e){ keyDown(sender, e);}private void textBox1_KeyUp(object sender, KeyEventArgs e){ keyUp(sender, e);}C# 中實現(xiàn)快捷鍵的3種不同的方式
C#為應(yīng)用程序注冊快捷鍵
原創(chuàng)文章,轉(zhuǎn)載請著名出處:C#:實現(xiàn)快捷鍵自定義設(shè)置(http://m.survivalescaperooms.com/hongfei/p/4148710.html)
新聞熱點
疑難解答