最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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


每個(gè)窗體都有這樣3個(gè)事件:KeyDown、KeyPress、KeyUp,KeyDown和KeyPress都是按鍵按下事件,但KeyDown用的是KeyCode跟鍵盤各個(gè)按鍵相對(duì)應(yīng),它對(duì)應(yīng)Keys枚舉,用起來比較方便;而KeyPress用的是KeyChar,這個(gè)就要找ASC II編碼了,不方便。KeyUp是按鍵彈起事件,不常用,因此我們使用KeyDown事件來設(shè)置窗體的快捷鍵,雙擊該事件后的空白生成代碼,首先我們?cè)O(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,向窗體注冊(cè)控件上產(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對(duì)比,這樣即可判斷是否按下了該組合鍵。

那么 怎么觸發(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鍵對(duì)應(yīng);與窗體的CancelButton屬性相關(guān)聯(lián)的按鈕,將與鍵盤上的Ecs鍵對(duì)應(yīng)。

另外一種簡(jiǎn)單快捷鍵的方法

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

相關(guān)文章

  • C#中按字符串截取長字符串實(shí)例

    C#中按字符串截取長字符串實(shí)例

    這篇文章主要介紹了C#中按字符串截取長字符串的實(shí)現(xiàn)方法,以實(shí)例形式展示了C#中正則匹配截取字符串的技巧,需要的朋友可以參考下
    2014-11-11
  • C#對(duì)稱加密與非對(duì)稱加密實(shí)例

    C#對(duì)稱加密與非對(duì)稱加密實(shí)例

    這篇文章主要介紹了C#對(duì)稱加密與非對(duì)稱加密實(shí)例,詳細(xì)分析了對(duì)稱加密與非對(duì)稱加密的原理與具體實(shí)現(xiàn)方法,具有一定的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C#使用密封類實(shí)現(xiàn)密封用戶信息的示例詳解

    C#使用密封類實(shí)現(xiàn)密封用戶信息的示例詳解

    在C#中,密封類(sealed class)是一種不能被其他類繼承的類,它用于防止其他類繼承它的功能和屬性, 下面我們就來看看如何使用密封類密封用戶的信息吧
    2024-02-02
  • C#中跨線程訪問控件的實(shí)現(xiàn)方法

    C#中跨線程訪問控件的實(shí)現(xiàn)方法

    C#中不允許跨線程直接訪問界面控件,即一個(gè)線程中如主線程創(chuàng)建的控件不允許被其他線程例如子線程直接訪問,在一個(gè)線程中設(shè)置其他線程所有的控件屬性通常有兩種方法,本文將詳細(xì)的給大家介紹一下,需要的朋友可以參考下
    2024-12-12
  • C# 創(chuàng)建控制臺(tái)應(yīng)用程序

    C# 創(chuàng)建控制臺(tái)應(yīng)用程序

    這篇文章主要介紹了C# 創(chuàng)建控制臺(tái)應(yīng)用程序,在學(xué)習(xí)C#語言的時(shí)候,首先要學(xué)習(xí)控制臺(tái)的應(yīng)用程序,這樣才能專注于語言的學(xué)習(xí),減少學(xué)習(xí)的梯度,也有利于輸出自己需要輸出的內(nèi)容,一定要先使用控制臺(tái)的應(yīng)用程序的方式,下面就和小編一起學(xué)習(xí)該內(nèi)容吧
    2021-10-10
  • winform實(shí)現(xiàn)拖動(dòng)文件到窗體上的方法

    winform實(shí)現(xiàn)拖動(dòng)文件到窗體上的方法

    這篇文章主要介紹了winform實(shí)現(xiàn)拖動(dòng)文件到窗體上的方法,以實(shí)例分析了C#中WinForm操作窗體及文件的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • C#?TreeView控件使用技巧匯總

    C#?TreeView控件使用技巧匯總

    這篇文章主要介紹了C#?TreeView控件使用技巧匯總,TreeView控件在窗體應(yīng)用里面使用也是頻率比較高的,我們?cè)谑褂肨reeView一般是對(duì)資源的分層展示,類似數(shù)據(jù)結(jié)構(gòu)里面樹的凹入表示法
    2022-08-08
  • C#制作簡(jiǎn)易的屏保

    C#制作簡(jiǎn)易的屏保

    這篇文章主要為大家詳細(xì)介紹了C#制作簡(jiǎn)易的屏保的相關(guān)資料,C#如何制作屏保的過程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • C#去除字符串中的反斜杠實(shí)例(推薦)

    C#去除字符串中的反斜杠實(shí)例(推薦)

    下面小編就為大家分享一篇C#去除字符串中的反斜杠實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • c#日志記錄幫助類分享

    c#日志記錄幫助類分享

    這篇文章主要介紹了c#日志記錄幫助類,可以設(shè)置記錄的日志類型,需要的朋友可以參考下
    2014-03-03

最新評(píng)論

林芝县| 小金县| 肇州县| 望奎县| 彭山县| 砚山县| 桐梓县| 共和县| 湾仔区| 镶黄旗| 紫云| 宕昌县| 喀喇沁旗| 芮城县| 峨边| 新绛县| 乐都县| 罗甸县| 革吉县| 会东县| 华宁县| 丹巴县| 十堰市| 大化| 广西| 永州市| 荆州市| 台南市| 肥东县| 宣汉县| 德兴市| 剑川县| 苏尼特左旗| 天峨县| 樟树市| 和平县| 新宁县| 中阳县| 沁阳市| 多伦县| 和林格尔县|