歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C#調用系統API指定快捷鍵

C#調用系統API指定快捷鍵

日期:2017/3/1 10:06:43   编辑:Linux編程

快捷鍵的作用大家都清楚,就是快捷嘛,操作起來方便.用電腦的人很少有沒用過Ctrl + C 和Ctrl + V的. 其他很多軟件也有各種快捷鍵.電腦自然沒那麼聰明,知道我們敲哪些鍵然後給出相應反應,這都得我們自己寫代碼實現啊.指定快捷鍵有兩種方式.

方法一.當應用程序某個頁面獲得焦點時,直接寫一個該頁面的KeyDown事件處理函數就行,非常的簡單.我們大多數時候就用的這種快捷鍵.
方法二.在任何時候都能使用快捷鍵,此時必須調用系統的API才行.這種情況我們用的不多.不過有個典型的例子,就是通過快捷鍵切換輸入法.輸入法的應用程序肯定是通過API處理的.

方法一
我們知道點擊鼠標,敲鍵盤都是觸發一個個的事件.那使用快捷鍵自然是要寫個鍵盤敲擊的事件處理函數.我們知道每個控件都可以對應很多事件.所以鍵盤的的事件處理自然可以和某一個控件關聯起來.但一般不怎麼樣,因為這樣的話我們必須得先讓此控件獲得焦點才行. 而我們很多時候可能希望只要是某個頁面打開的情況下,不管焦點在其中的哪個控件上都可以點快捷鍵鍵.那我們應該把事件處理與頁面(Form)關聯起來.假如有頁面Form1.對應的事件處理函數如下.

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.A) //快捷鍵a
{
MessageBox.Show("hello arwen");
}
else if (e.KeyCode == Keys.F1) //快捷鍵F1
{
MessageBox.Show("please help.");
}
else if (e.Control && e.Shift && e.KeyCode == Keys.F) //快捷鍵Ctrl + Shift + F
{
MessageBox.Show("search some info.");
}
else if (e.Alt && e.KeyCode == Keys.X) //快捷鍵Alt + X
{
MessageBox.Show("Close.");
}
}

在函數裡面可以通過e.KeyCode判斷是敲了哪個鍵.然後做相應的處理就OK.當然你也可以不用e.KeyCode.而是用e.KeyValue來判斷,KeyValue就是每個鍵上面的字母或符號對應的ASCII 碼值.

Copyright © Linux教程網 All Rights Reserved