【问题标题】:How to catch Control-V in C# app?如何在 C# 应用程序中捕获 Control-V?
【发布时间】:2008-10-06 08:42:09
【问题描述】:

我已尝试覆盖 WndProc,但粘贴事件中没有消息显示。

然后我尝试创建自定义过滤器并使用方法 PreFilterMessage 我能够捕获值为 257 的消息(KEYUP 事件),但这还不够......

【问题讨论】:

    标签: c# message keyevent


    【解决方案1】:

    用途:

     protected override void OnKeyDown(KeyEventArgs e)
     {
          if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control)
          {
                MessageBox.Show("Hello world");
          }
          base.OnKeyDown(e);
      }
    

    确保您的表单 KeyPreview = true。

    【讨论】:

    • 仅供参考 - 这不是我问的问题
    • 首先你需要实现这样的功能(我猜使用上下文菜单条)。无论如何,您都可以完全控制它
    【解决方案2】:

    您可以这样做:

    • 在表单的 KeyDown(或 KeyUp)中拦截 Ctrl+V
    • 在您的表单中创建一个菜单,其中包含一个粘贴选项,该选项具有 Ctrl+V 快捷方式(这可能会更好,因为您会让用户寻找这些选项)
    • 像您在问题中描述的那样拦截 KEYDOWN 消息并检查当时是否按下了 Ctrl(我认为这是所有 3 个中最难的)。

    我个人会选择使用菜单选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-07
      • 2010-09-15
      • 1970-01-01
      • 2011-05-06
      • 2016-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多