检测按下的组合键

时间:2015-01-17 23:24:59

标签: c# winforms key detect

我想检测用户是否一起点击了几个键(例如:ctrl + c,alt + F4等..)

我该怎么做?

我用谷歌搜索了但是我感到很困惑......:/

我试过了:

if (Control.ModifierKeys == (Keys.C) &&Control.ModifierKeys == Keys.Control)
{
    MessageBox.Show("Test");
}

但它没有用,有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您的if语句不正确使用此:

if (e.KeyCode == Keys.C && Control.ModifierKeys == Keys.Control)
{
}

答案 1 :(得分:1)

我只是明白我该做什么:
我需要输入这个:

void detectCopy(object sender, KeyEventArgs e)
{
    if (Control.ModifierKeys == Keys.Control && e.KeyCode == Keys.C)
    {
        //work here
    }
}

,这在构造函数上:

public Form1()
{
    InitializeComponent();
    this.KeyDown += new KeyEventHandler(detectCopy);
}

答案 2 :(得分:0)

在构造函数上执行以下操作:

 public Form1()
    {
        InitializeComponent();
        this.KeyDown += new KeyEventHandler(detectCopy);
        KeyPreview = true;
    }

在代码中执行此操作:

void detectCopy(object sender, KeyEventArgs e)
{
    if (Control.ModifierKeys == Keys.Control && e.KeyCode == Keys.C)
    {
    //work here
    }
}

在Windows窗体中,属性KeyPreview需要对KeyDown事件有效!!!