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

C# WinForm中實現(xiàn)快捷鍵自定義設置實例

 更新時間:2015年01月23日 09:38:54   投稿:junjie  
這篇文章主要介紹了對C# WinForm中實現(xiàn)快捷鍵自定義設置實例,本文實現(xiàn)了大多數(shù)軟件如QQ、有道詞典中的快捷鍵設置功能,即按下相應按鍵后顯示在文本框中,需要的朋友可以參考下

本文源碼下載:http://xiazai.jb51.net/201501/tools/cs-key-setting.rar

項目開發(fā)過程中,需要實現(xiàn)類似有道詞典的軟件設置中的自定義快捷鍵功能,如下圖所示:

當我們相繼按下Ctrl+Alt+M的時候,軟件就會自動將快捷鍵顯示在文本框中。

最終的效果如下圖所示:

核心代碼如下所示:

復制代碼 代碼如下:

private void keyDown(object sender, KeyEventArgs e)
{
    StringBuilder keyValue = new StringBuilder();
    keyValue.Length = 0;
    keyValue.Append("");
    if (e.Modifiers != 0)
    {
        if (e.Control)
            keyValue.Append("Ctrl + ");
        if (e.Alt)
            keyValue.Append("Alt + ");
        if (e.Shift)
            keyValue.Append("Shift + ");
    }
    if ((e.KeyValue >= 33 && e.KeyValue <= 40) ||
        (e.KeyValue >= 65 && e.KeyValue <= 90) ||   //a-z/A-Z
        (e.KeyValue >= 112 && e.KeyValue <= 123))   //F1-F12
    {
        keyValue.Append(e.KeyCode);
    }
    else if ((e.KeyValue >= 48 && e.KeyValue <= 57))    //0-9
    {
        keyValue.Append(e.KeyCode.ToString().Substring(1));
    }
    this.ActiveControl.Text = "";
    //設置當前活動控件的文本內容
    this.ActiveControl.Text = keyValue.ToString();
}

private void keyUp(object sender, KeyEventArgs e)
{
    string str = this.ActiveControl.Text.TrimEnd();
    int len = str.Length;
    if (len >= 1 && str.Substring(str.Length - 1) == "+")
    {
        this.ActiveControl.Text = "";
    }
}

e.KeyValue和字符的對應關系

字符 e.KeyValue
a-z|A-Z 65-90
F1-F12 112-123
0-9 48-57
PageUp 33
PageDown 34
End 35
Home 36
左(←) 37
上( ↑ ) 38
右(→) 39
下( ↓ ) 40

接著,為textbox控件分別設置_KeyDown和_KeyUp事件,并在其中調用以上2個核心函數(shù)。

如下所示:

復制代碼 代碼如下:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    keyDown(sender, e);
}

private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
    keyUp(sender, e);
}


相關文章

  • php生成不重復隨機數(shù)、數(shù)組的4種方法分享

    php生成不重復隨機數(shù)、數(shù)組的4種方法分享

    這篇文章主要介紹了php生成不重復隨機數(shù)、數(shù)組的4種方法分享,本文直接給出實現(xiàn)代碼,并對生成效率做了對比,需要的朋友可以參考下
    2015-03-03
  • php中spl_autoload詳解

    php中spl_autoload詳解

    SPL 是Standard PHP Library(標準PHP庫)的縮寫。它是PHP5引入的一個擴展庫,其主要功能包括autoload機制的實現(xiàn)及包括各種Iterator接口或類。 SPL autoload機制的實現(xiàn)是通過將函數(shù)指針autoload_func指向自己實現(xiàn)的具有自動裝載功能的函數(shù)來實現(xiàn)的。
    2014-10-10
  • PHP5.5基于mysqli連接MySQL數(shù)據(jù)庫和讀取數(shù)據(jù)操作實例詳解

    PHP5.5基于mysqli連接MySQL數(shù)據(jù)庫和讀取數(shù)據(jù)操作實例詳解

    這篇文章主要介紹了PHP5.5基于mysqli連接MySQL數(shù)據(jù)庫和讀取數(shù)據(jù)操作,結合實例形式詳細分析了php5.5使用mysqli連接、讀取mysql數(shù)據(jù)庫,以及PDO預處理相關操作技巧,需要的朋友可以參考下
    2019-02-02
  • php中將字符串轉為HTML的實體引用的一個類

    php中將字符串轉為HTML的實體引用的一個類

    php將字符串轉為HTML的實體引用的一個類,有需要的朋友可以參考下
    2013-02-02
  • PHP中empty,isset,is_null用法和區(qū)別

    PHP中empty,isset,is_null用法和區(qū)別

    最近在閱讀項目的源碼,發(fā)現(xiàn)源碼中就對empty、isset和is_null函數(shù)(語言特性)亂用,有的地方很明顯的就挖坑了。不能正確的去理解這些東西,就很可能給后續(xù)的開發(fā)挖坑了。
    2017-02-02
  • php實現(xiàn)讀取和寫入tab分割的文件

    php實現(xiàn)讀取和寫入tab分割的文件

    這篇文章主要介紹了php實現(xiàn)讀取和寫入tab分割的文件,涉及php文件讀寫及字符串操作的相關技巧,需要的朋友可以參考下
    2015-06-06
  • php文件后綴不強制為.php的實操方法

    php文件后綴不強制為.php的實操方法

    在本篇文章里小編給大家整理的是一篇關于php文件后綴不強制為.php的實操方法,有需要的朋友們參考下。
    2019-09-09
  • PHP中變量引用與變量銷毀機制分析

    PHP中變量引用與變量銷毀機制分析

    這篇文章主要介紹了PHP中變量引用與變量銷毀機制,較為深入的分析了PHP中變量的引用機制及其原理以及對應的變量的銷毀機制,有助于深入理解PHP程序設計原理,需要的朋友可以參考下
    2014-11-11
  • CentOS7系統(tǒng)搭建LAMP及更新PHP版本操作詳解

    CentOS7系統(tǒng)搭建LAMP及更新PHP版本操作詳解

    這篇文章主要介紹了CentOS7系統(tǒng)搭建LAMP及更新PHP版本操作,總結分析了CentOS7系統(tǒng)搭建LAMP及更新PHP版本操作相關原理、步驟、操作命令與注意事項,需要的朋友可以參考下
    2020-03-03
  • php的instanceof和判斷閉包Closure操作示例

    php的instanceof和判斷閉包Closure操作示例

    這篇文章主要介紹了php的instanceof和判斷閉包Closure操作,結合實例形式分析了PHP使用instanceof判斷類實例以及判斷閉包Closure相關操作技巧,需要的朋友可以參考下
    2020-01-01

最新評論

林甸县| 石嘴山市| 图们市| 南澳县| 霍林郭勒市| 黎平县| 马公市| 南通市| 乌兰浩特市| 肇州县| 凤山市| 新兴县| 闸北区| 财经| 石阡县| 安化县| 大宁县| 雷山县| 如皋市| 富源县| 乌兰浩特市| 离岛区| 琼结县| 固阳县| 清丰县| 阳信县| 西安市| 方山县| 沂南县| 安平县| 呼伦贝尔市| 黄平县| 额敏县| 惠州市| 康乐县| 融水| 金阳县| 称多县| 漯河市| 尉氏县| 三门峡市|