ListView 上的 Ctrl+C 识别为 "LButton | Shift Key"

Ctrl+C on ListView recognises as "LButton | Shift Key"

如何捕获在列表视图上按下的“ctrl+c”键?

我也在努力

private void listviewLogger_KeyUp(object sender, KeyEventArgs e)
{
    if (sender != listviewLogger) return;

    //if (e.Control && e.KeyData == (Keys.Control | Keys.C))
    if (e.Control && e.KeyCode == Keys.C)
        CopySelectedValuesToClipboard();
}

但它显示了 LButton | 的组合Sift Key 当我按下 ctrl+C 时:

P.S.: windows安装了两种语言,系统Win2012 R2

更新1:谢谢您的评论!如果我记录操作,我会看到:

e.KeyData: ControlKey
e.KeyCode: ControlKey
e.KeyData: C
e.KeyCode: C

但是仍然无法捕捉到这个键序列。代码:

private void listviewLogger_KeyUp(object sender, KeyEventArgs e)
{
    if (sender != listviewLogger)
        return;

    Logger("e.KeyData: " + e.KeyData);
    Logger("e.KeyCode: " + e.KeyCode);
}

更新2:

这样解决。不要问我如何:-D

if (((e.KeyData & Keys.ControlKey) != Keys.ControlKey) && e.KeyCode == Keys.C)
    CopyLogEntriesToClipboard();

更新3:

KeyUp 事件的先前作品。 KeyDown 第一个代码片段有效

最好捕捉按键按下事件(我已经通过按住 Ctrl+C 并在不释放按钮的情况下切换到另一个按键来在编辑器上检查过它)。 请再试一次你的第一次施工。它对我有用!

private void listView1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Control && e.KeyCode == Keys.C)
        Text = "got it";
}