是否有可能在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);
}