c# – 如何使用KeyPress一次按3个键?

是否有可能在KeyPress上获得3个密钥?
我想得到Ctrl H T. . .

我尝试了ff:

if (e.KeyCode == Keys.H && e.Modifiers == Keys.Control)
{
    if (e.KeyCode == Keys.T && e.Modifiers == Keys.Control)
    {
        Console.WriteLine("^");
    }
}

但似乎行不通.我猜e.KeyCode一次只返回一个键?所以我还在考虑如何做到这一点……或者将以前的密钥存储到变量中?提前致谢

解决方法:

这应该工作(我测试它,它似乎做你需要的).

如果按Ctrl H,它会设置一个布尔变量.然后,如果您之后立即按下Ctrl T,它将检测到两个都是连续按下的.如果您按Ctrl T以外的任何内容,它会将标志设置回False.

private bool isCtrlHPressed;

private void txt_callerName_KeyDown(object sender, KeyEventArgs e)
{
    if (isCtrlHPressed && e.KeyCode == Keys.T && e.Modifiers == Keys.Control)
        Console.WriteLine("^");

    isCtrlHPressed = (e.KeyCode == Keys.H && e.Modifiers == Keys.Control);
}
上一篇:使用机器人在Java中键入字符


下一篇:keydown和KeyPress事件有何不同