adobe reader控件在表单应用程序中窃取关键事件

时间:2013-11-18 15:24:49

标签: c# winforms keyevent adobe-reader

在我的表单应用程序中,我添加了一个adobe reader控件来显示我的应用程序中的pdf文件。 我有一个拆分面板,所以在左边是一个带有目录和文件的树状视图。 在右侧,我有adobe reader控件。 效果很好。

但我想实现一些关键事件,而重点是adobe reader控件。 我整天都在寻找一个有效的解决方案。

我还试图覆盖ProcessCmdKey-Event,但它也没有用。 当焦点在adobe reader控件上时,不会调用Event。 如果焦点位于表单或树视图中,则事件为calld。 没有显示错误或在控制台中。 还使用断点进行了测试。

那么,你知道的是什么,我不知道吗? 非常欢迎您的建议。 感谢。

1 个答案:

答案 0 :(得分:0)

刚刚测试了以下 ProcessCmdKey 方法的覆盖。 它对我有用,你能尝试下面的代码吗?

protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, Keys keyData)
{
      if (keyData == (Keys.Control | Keys.OemQuestion))
      {
                MessageBox.Show("Shortcut Keys Work!", "Yay!");
                //Code executes when CTRL + ? button are pressed.
                //Change keys to your needs.
                return true;
      }
      return base.ProcessCmdKey(ref msg, keyData);
}

我不确定您要处理哪些关键快捷方式,但上面的代码处理CTRL + QuestionMark,当将一段时间放在Keys之后,IntelliSense将帮助您提供更多选项。