Heim > php教程 > php手册 > C# WinForm中实现快捷键自定义设置实例

C# WinForm中实现快捷键自定义设置实例

WBOY
Freigeben: 2016-06-06 20:12:59
Original
1244 Leute haben es durchsucht

这篇文章主要介绍了对C# WinForm中实现快捷键自定义设置实例,本文实现了大多数软件如QQ、有道词典中的快捷键设置功能,即按下相应按键后显示在文本框中,需要的朋

本文源码下载:

项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,,如下图所示:

C# WinForm中实现快捷键自定义设置实例

当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中。

最终的效果如下图所示:

C# WinForm中实现快捷键自定义设置实例

核心代码如下所示:

复制代码 代码如下:


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         (e.KeyValue >= 65 && e.KeyValue         (e.KeyValue >= 112 && e.KeyValue     {
        keyValue.Append(e.KeyCode);
    }
    else if ((e.KeyValue >= 48 && e.KeyValue     {
        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个核心函数。

如下所示:

复制代码 代码如下:


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

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


Verwandte Etiketten:
c#
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage