组合键在程序中是很有用的,像聊天软件中ctrl+回车发送消息,又或是ctrl+A来回完成什么快捷操作等。在c#中应用这类组合快捷键也是比较方便的,但对于初学者来说,可能以前总是用'+'来运算键值,这种方法到了C#中可就不那么灵光了,那么到底如何应用呢,看一段简单的代码。

 

keyup 事件
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
     
if (ModifierKeys == Keys.Control && e.KeyCode == Keys.Enter)
     {
         
this.textBox2.AppendText(this.textBox1.Text + "\n");
         
this.textBox1.Clear();
     }
}

 

 

以上代码是一个Text控件的keyup事件,里面的代码功能是在textbox1里面输入字符,然后按ctrl+回车键后,将textbox1内的字符输入到textbox2中去,并清空textbox1的内容。让我们稍做一下改动:

 

keyup 事件
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
    
if ((int)ModifierKeys == (int)Keys.Control + (int)Keys.Alt && e.KeyCode == Keys.J)
    {
        
this.textBox2.AppendText(this.textBox1.Text + "\n");
        
this.textBox1.Clear();
    }
}

 

 

这段代码的功能和上面是一样的,只是快捷键有所改动,改成了ctrl + alt + J.注意到在键值前面加了(int),这其实就是将枚举类型的值转回int类型而已。

Convert.ToInt32(Keys.Delete) && ((int)Control.ModifierKeys == (int)Keys.Control + (int)Keys.Alt) :ctrl + alt +del

Convert.ToInt32(Keys.F4) && Control.ModifierKeys == Keys.Alt  :alt+F4

Convert.ToInt32(Keys.Escape) && Control.ModifierKeys == Keys.Control :ctrl + esc

Convert.ToInt32(Keys.Tab) && Control.ModifierKeys == Keys.Alt :alt+tab

……