如何在C#应用程序中捕获Control-V

本文关键字:Control-V 应用程序 | 更新日期: 2023-09-27 17:47:46

我试图覆盖WndProc,但粘贴事件上没有显示消息。

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

如何在C#应用程序中捕获Control-V

使用:

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

确保您的表单KeyPreview=true。

您可以通过以下方式实现:

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

就我个人而言,我会选择使用菜单选项。