如何在C#应用程序中捕获Control-V
本文关键字:Control-V 应用程序 | 更新日期: 2023-09-27 17:47:46
我试图覆盖WndProc,但粘贴事件上没有显示消息。
然后我尝试创建自定义过滤器,并使用方法PreFilterMessage,我能够捕获值为257的消息(KEYUP事件),但这还不够。。。
使用:
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个消息中最难的)
就我个人而言,我会选择使用菜单选项。