C 為WinForm窗體定義功能快捷鍵

2021-07-24 06:58:46 字數 1330 閱讀 4911

c#_為winform窗體定義功能快捷鍵

這裡的快捷鍵並非系統全域性快捷鍵。僅是普通的當窗體在焦點內是發生。有很多種方法,這裡列舉幾種專案中使用到的方法。

alt+*(一般控制項快捷鍵)

在大家給button、label、menustrip等控制項設定text屬性時  這個比較簡單,只需為該控制項的text屬性宣告時加上」(&a)」,」(&d)」 之類的標識,例如乙個button按鈕的text屬性為:this.btnok.text=」確定(&a)」;

ctrl+*(組合鍵)

當在某個窗體上按下乙個組合鍵時發生。常用的如:列印(ctrl+p),儲存(ctrl+s)…等等。

首先需設定窗體的keypreview(向窗體註冊鍵盤事件)(確定窗體上控制項的鍵盤事件是否已向窗體註冊)屬性設定為true

然後只需在窗體的keydown事件中做相應業務處理。

private void form1_keydown(object sender, keyeventargs e)

這裡,如果要啟用某個button按鈕事件,有三種寫法:

btnok.performclick();//執行該控制項的click事件

invokeonclick(btnok,null);//為指定的控制項引發click事件

btnok_click(null,null);//直接呼叫按鈕的click事件,引數都為null

2、還有乙個問題,當使用ctrl + *快捷鍵時,對於焦點在可寫的控制項(如textbox)上時,可能會將* 鍵值同時輸入,則需要加另一句話將handled設定為true,以取消 keypress 事件。  

即:  

private void ***_keydown(object sender, keyeventargs e)  

}  

第三種:  

還是以button為例。給form新增乙個contextmenustrip1,將其邦定到button上,假設為button1。給contextmenustrip1新增乙個item,然後為它設定快捷鍵(就是你想加在button上的快捷鍵),並且將它的visible屬性設為false。這樣,button1的快捷鍵設定成功。

時間的步伐有三種:未來姍姍來遲,現在像箭一樣飛逝,過去永遠靜立不動.務請珍惜

好文要頂

關注我收藏該文

asa.zhu

關注 - 6

粉絲 - 13

+加關注 0 0

多版本office如何設定預設開啟方式

小議winform的熱鍵

posted on

2012-11-08 21:03

asa.zhu 閱讀(

1) 編輯收藏

C 為WinForm窗體定義功能快捷鍵

這裡的快捷鍵並非系統全域性快捷鍵。僅是普通的當窗體在焦點內是發生。有很多種方法,這裡列舉幾種專案中使用到的方法。alt 一般控制項快捷鍵 在大家給button label menustrip等控制項設定text屬性時 這個比較簡單,只需為該控制項的text屬性宣告時加上 a d 之類的標識,例如乙個...

C 自定義Winform無邊框窗體

在實際專案中,winform窗體或者控制項不能滿足要求,所以就需要自己設計窗體等,當然設計介面可以用的東西很多,例如wpf 或者一些第三方的庫等。本例中將採用winform設計乙個扁平美觀的窗體。需要的可以參考 c 自定義button按鈕控制項 窗體效果 是否允許最大化 3 4private boo...

WinForm中拖拽窗體實現移動功能

在windowsform 應用程式中,有時我們會將窗體的formborderstyle屬性設定為none,這時,用滑鼠拖拽窗體時就無法實現移動的功能了 你是否也遇到過這種情況?不要著急,下面就是解決方案.在formbordestyle屬性設定為none的窗體的後台 中新增以下 dllimport u...