winforms 检测按下的组合键

d6kp6zgx  于 2023-05-18  发布在  其他
关注(0)|答案(3)|浏览(146)

我想检测用户是否同时点击了几个键(例如:ctrl+c,alt +F4等)
我该怎么做?
我在谷歌上搜索了一下,但没有得到任何正确的答案
我的代码如下:

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

但没有成功,有什么想法吗?

o2g1uqev

o2g1uqev1#

我刚刚明白我应该做什么:
我被要求输入这个:

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);
}
rggaifut

rggaifut2#

你的if语句是不正确的,请使用这个:

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

u7up0aaq3#

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

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窗体中,PropertyKeyPreview需要对KeyDown事件有效!!!

相关问题