欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

WinForm中快捷鍵與組合按鍵的設(shè)置方法

 更新時(shí)間:2013年02月28日 17:42:02   作者:  
WinForm中快捷鍵與組合按鍵的設(shè)置,第一種方法。。代碼復(fù)雜,操作簡單的快捷鍵,另外一種簡單快捷鍵的方法,大家可以參考下
第一種方法。。代碼復(fù)雜,操作簡單的快捷鍵

新建一個(gè)空白窗體


每個(gè)窗體都有這樣3個(gè)事件:KeyDown、KeyPress、KeyUp,KeyDown和KeyPress都是按鍵按下事件,但KeyDown用的是KeyCode跟鍵盤各個(gè)按鍵相對應(yīng),它對應(yīng)Keys枚舉,用起來比較方便;而KeyPress用的是KeyChar,這個(gè)就要找ASC II編碼了,不方便。KeyUp是按鍵彈起事件,不常用,因此我們使用KeyDown事件來設(shè)置窗體的快捷鍵,雙擊該事件后的空白生成代碼,首先我們設(shè)置單個(gè)按鍵,讓它按下F11最大化,再次按下還原,在事件中加入如下代碼:

復(fù)制代碼 代碼如下:

if (e.KeyCode == Keys.F11)
{
if (WindowState == FormWindowState.Maximized)
WindowState = FormWindowState.Normal;
else
WindowState = FormWindowState.Maximized;
}


若窗體的WindowState為Maximized則還原,否則最大化,運(yùn)行下試試,很好用 :-)

下面在窗體中加入一個(gè)名為txtInput的TextBox,兩個(gè)名為btnConfirm、btnExit的Button:



再次運(yùn)行窗體,按下F11,不起作用了?這是怎么回事?

因?yàn)檫@時(shí)窗體運(yùn)行后,焦點(diǎn)已不在窗體上,而在控件上了,我們要將KeyPreview設(shè)置為True,向窗體注冊控件上產(chǎn)生的鍵盤事件,再次運(yùn)行,問題解決了。

那么組合按鍵又怎么設(shè)置呢?例如要按下Alt和數(shù)字0,需要這樣:

復(fù)制代碼 代碼如下:

if (e.Modifiers == Keys.Alt && e.KeyCode == Keys.D0)
{
    MessageBox.Show("按下了Alt + 0");
}

使用Modifiers可設(shè)置組合鍵,鍵盤數(shù)字區(qū)按鍵的Keys枚舉以D打頭,而小鍵盤上的數(shù)字以NumPad打頭。按下Ctrl與Shift組合鍵的方法與其類似,下面我們看看按下Ctrl + Alt + 數(shù)字0該怎樣設(shè)置:

復(fù)制代碼 代碼如下:

if ((int)e.Modifiers == ((int)Keys.Control + (int)Keys.Alt) && e.KeyCode == Keys.D0)
{
    MessageBox.Show("按下了Control + Alt + 0");
}

將Ctrl和Alt的枚舉轉(zhuǎn)換為int型相加后與Modifiers對比,這樣即可判斷是否按下了該組合鍵。

那么 怎么觸發(fā)按鈕事件呢?

如按F1觸發(fā)confirm按鈕事件

復(fù)制代碼 代碼如下:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
               if (e.KeyCode == Keys.F1)
             {

                         / /如果還有keypress事件,不讓此快捷鍵觸發(fā)其事件可加一句代碼

                      e.Handled = true;   //將Handled設(shè)置為true,指示已經(jīng)處理過KeyPress事件
                      confirm1.PerformClick();////執(zhí)行單擊confirm1的動(dòng)作
             }
}



另外的,與窗體的AcceptButton屬性相關(guān)聯(lián)的按鈕,將與鍵盤上的Enter鍵對應(yīng);與窗體的CancelButton屬性相關(guān)聯(lián)的按鈕,將與鍵盤上的Ecs鍵對應(yīng)。

另外一種簡單快捷鍵的方法

在設(shè)置Button的Text屬性時(shí),在一個(gè)英文字母的前面加上&(and符),例如將btnConfirm的Text屬性設(shè)置為:&Confirm,當(dāng)運(yùn)行窗體,按下Alt + C時(shí),就相當(dāng)于按下該鍵。

相關(guān)文章

  • C#實(shí)現(xiàn)頁面GZip或Deflate壓縮的方法

    C#實(shí)現(xiàn)頁面GZip或Deflate壓縮的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)頁面GZip或Deflate壓縮的方法,涉及C#通過GZipStream與DeflateStream實(shí)現(xiàn)頁面壓縮的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • C#實(shí)現(xiàn)圖形界面的時(shí)鐘

    C#實(shí)現(xiàn)圖形界面的時(shí)鐘

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)圖形界面的時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C#學(xué)習(xí)筆記——基本語法

    C#學(xué)習(xí)筆記——基本語法

    本文給大家詳細(xì)介紹了C#的基本語法知識(shí)以及一些基礎(chǔ)知識(shí)的匯總,非常的簡單基礎(chǔ),有需要的小伙伴可以參考下
    2017-02-02
  • WindowsForm實(shí)現(xiàn)警告消息框的實(shí)例代碼

    WindowsForm實(shí)現(xiàn)警告消息框的實(shí)例代碼

    這篇文章主要介紹了WindowsForm如何實(shí)現(xiàn)警告消息框,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 簡單了解C#設(shè)計(jì)模式編程中的橋接模式

    簡單了解C#設(shè)計(jì)模式編程中的橋接模式

    這篇文章主要介紹了C#設(shè)計(jì)模式編程中的橋接模式,橋接模式經(jīng)常應(yīng)用于解耦邏輯層與數(shù)據(jù)操作層,需要的朋友可以參考下
    2016-02-02
  • C#獲取程序文件相關(guān)信息的方法

    C#獲取程序文件相關(guān)信息的方法

    這篇文章主要介紹了C#獲取程序文件相關(guān)信息的方法,可實(shí)現(xiàn)獲取程序版本號(hào)、版權(quán)聲明、程序文本信息等,需要的朋友可以參考下
    2014-09-09
  • C#操作Access通用類實(shí)例

    C#操作Access通用類實(shí)例

    這篇文章主要介紹了C#操作Access通用類,實(shí)例分析了C#操作access的各種常見技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-06-06
  • 詳解C#切換窗口

    詳解C#切換窗口

    最近項(xiàng)目不多忙,于是抽點(diǎn)時(shí)間鞏固下切換窗口問題,感興趣的朋友跟著小編一起學(xué)習(xí)吧
    2016-04-04
  • C# using語法糖圖文詳解

    C# using語法糖圖文詳解

    這篇文章主要給大家介紹了關(guān)于C# using語法糖的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 終于了解了下.net 和 j2ee的區(qū)別

    終于了解了下.net 和 j2ee的區(qū)別

    終于了解了下.net 和 j2ee的區(qū)別...
    2007-04-04

最新評論