【发布时间】:2016-06-01 03:41:45
【问题描述】:
如何捕捉列表视图上按下的“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
更新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 第一个 code-sn-p 有效
【问题讨论】:
-
好吧,你不能用这样的断点调试 GUI 代码。它正在与您释放鼠标左键和 shift 键相冲突。
标签: c# winforms listview hotkeys