如何在listview上按下“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 |的组合按ctrl + C时筛选键:
p.s。:在Windows中安装了两种语言,系统Win2012 R2
Update1:感谢您的评论!如果我记录操作,我会看到:
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);
}
UPDATE2:
像这样解决了。不要问我怎么做:-D
if (((e.KeyData & Keys.ControlKey) != Keys.ControlKey) && e.KeyCode == Keys.C)
{
CopyLogEntriesToClipboard();
}
UPDATE3:
以前适用于 KeyUp 事件。对于 KeyDown ,第一个代码段工作
答案 0 :(得分:2)
最好抓住按键事件(我已经在编辑器中通过按住Ctrl + C并在不使用relesing按钮的情况下切换到另一个按钮来检查它)。 请再试一次你的第一次施工。这对我有用!
private void listView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.C)
{
Text = "got it";
}
}