博主并沒(méi)有多少Windows平臺(tái)下程序的開(kāi)發(fā)經(jīng)驗(yàn),一年前使用過(guò)MFC設(shè)計(jì)過(guò)一個(gè)指紋識(shí)別系統(tǒng)的頁(yè)面,后來(lái)就沒(méi)有使用過(guò)幾次。現(xiàn)在C#課程實(shí)驗(yàn)要求實(shí)現(xiàn)一個(gè)簡(jiǎn)易計(jì)算器,為了便于快速錄入數(shù)據(jù),使用鍵盤(pán)會(huì)比使用鼠標(biāo)點(diǎn)擊按鈕高效很多。比如按下小鍵盤(pán)的數(shù)字1,能夠?qū)崿F(xiàn)和用鼠標(biāo)點(diǎn)擊按鈕1一樣的效果就行。

百度了一遍,找到的教程幾乎是一模一樣的,各種csdn轉(zhuǎn)載的博文上都提供了好幾種方法,但試了沒(méi)有一個(gè)管用,不知道什么地方配置出錯(cuò)了。后來(lái)Google了一下,點(diǎn)擊第一個(gè)搜索結(jié)果,StackOverFlow的問(wèn)答,順利解決了我的問(wèn)題。
要實(shí)現(xiàn)自定義鍵盤(pán)按鍵,只要覆寫(xiě)PRotected override bool ProcessCmdKey(ref Message msg, Keys keyData)這個(gè)方法(函數(shù))就好了。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData){ // if it is a hotkey, return true; otherwise, return false switch (keyData) { case Keys.NumPad0: //焦點(diǎn)定位到控件button_num_0上,即數(shù)字0鍵上 button_num_0.Focus(); //執(zhí)行按鈕點(diǎn)擊操作 button_num_0.PerformClick(); return true; case Keys.NumPad1: button_num_1.Focus(); button_num_1.PerformClick(); return true; //...... default: break; } return base.ProcessCmdKey(ref msg, keyData);} 完整的項(xiàng)目示例代碼請(qǐng)看這篇文章:http://m.survivalescaperooms.com/zyfdeblog/p/4567071.html:
原創(chuàng)文章,轉(zhuǎn)載時(shí)務(wù)必附上原文地址。謝謝。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注