Rec*_*ive 2 c# keypress detection
我希望通过检测某些无法输入的键组合(转义序列)的按键来模拟C#中的串行通信的超级终端功能,例如Ctrl + C,Ctrl + Z等.我知道这些键有它们的ASCII等价物并且可以如此传输.但我遇到了检测多个按键的问题.我的一些代码是作为参考提供的:
private void Transmitted_KeyDown(object sender, KeyEventArgs e)
{
if (e.Modifiers == Keys.Control || e.Modifiers== Keys.Shift || e.Modifiers==Keys.Alt)
{
var test = (char)e.KeyValue; // Only able to detect a single keypress!
ComPort.Write(test.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
如果您正在寻找常规密钥,则可以将它们存储在列表中:在KeyDown上,将密钥添加到列表中.在Key Up上,将其从列表中删除.在KeyDown上,检查列表中的内容.
但是,我不确定是否存在ctrl,shift,alt等修饰键的keydown/keyup事件.对于那些你可以做这样的事情:
bool CtrlDown = ((e.Modifiers & Keys.Control) > 0);
bool CtrlOnlyModifierDown = ((e.ModifierKeys & Keys.Control) == Keys.Control)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3483 次 |
最近记录: |