【问题标题】:Capturing Ctrl+C, Ctr+V in Infragistics UltraGrid在 Infragistics UltraGrid 中捕获 Ctrl+C、Ctr+V
【发布时间】:2021-07-23 16:18:21
【问题描述】:

我一直看到这种奇怪的行为,其中任何与 Ctrl 的键盘组合都被忽略了。忽略它的分解方式(只是为了测试而结构化)。

if (e.KeyCode == Keys.C)
{
    if (e.Control)
    {
        var test = "testing";
    }
}

如果我在第一个 if 语句上设置断点,任何按键都会命中它。按下 Ctrl 会立即触发,所以我更深入一层并在if (e.Control) 处设置断点。这应该在任何时候涉及到字母 C(无论是单独按下还是用 CtrlAltShift 修改)。按 C 会触发它。按 Ctrl+C 不会。踢球者按下 Alt+CShift+C 会触发它。所以我猜 Ctrl+C 一定是被其他东西专门消耗了?

我已经仔细研究了代码,但在其他任何地方都没有看到这种情况。任何见解将不胜感激。

【问题讨论】:

  • 我认为 CTRL+C 不是 CTRL 键然后是 C 键,它有自己的键值。

标签: c# winforms keypress infragistics


【解决方案1】:
document.onkeydown = function (e) {
e = e || window.event;//Get event
if (!e.ctrlKey) return;

var code = e.which || e.keyCode;//Get key code
switch (code) {
    case 67: //Block Ctrl+C
    case 65: //Block Ctrl+A
    case 88: //Block Ctrl+X
    case 73: //Block Ctrl+I
    case 80: //Block Ctrl+P
    //  case 86: //Block Ctrl+V
    case 85: //Block Ctrl+U
    case 83: //Block Ctrl+S
    case 87: //Block Ctrl+W -- Not work in Chrome and new Firefox
        e.preventDefault();
        e.stopPropagation();
        break;
}

};

以上代码运行良好!我不知道这正是你的问题的答案,但你可以从这里得到一个想法。

【讨论】:

    【解决方案2】:

    我猜你在表单上有一个 ToolBarToolStripContext 菜单以及这些组合键的快捷方式,所以它正在吃掉这些消息,而它们永远不会到达 UltraGrid

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多