【问题标题】:ActiveX control doesn't get focus when right-clicked右键单击时 ActiveX 控件没有获得焦点
【发布时间】:2012-05-30 23:48:51
【问题描述】:

我正在开发一个托管在 MFC 和 VB6 应用程序中的 ActiveX 控件。

此 ActiveX 包含一个 WPF 控件,它本身由 WinForms ElementHost 托管,即:

MFC > .NET ActiveX > WinForms ElementHost > WPF 用户控件

当用户右键单击控件时,他必须能够使用键盘箭头键在上下文菜单中导航。

如果右键单击时我的控件具有焦点,则一切正常。

但如果用户右键单击时焦点在宿主应用程序中,则键盘事件会继续发送到宿主 MFC 应用程序。

当我检测到右键单击时,我尝试在我的 WPF 控件上调用 Focus() 方法,但它不起作用。

有人有想法吗?

谢谢。

【问题讨论】:

    标签: wpf winforms focus activex


    【解决方案1】:

    我找到了解决方法。

    当 WPF 窗体上发生PreviewMouseRightButtonDown 事件时,我在 WinForm 宿主控件上调用 Focus 方法。

    我不太明白为什么,但这让用户可以使用键盘在上下文菜单中导航。

    【讨论】:

      猜你喜欢
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      • 1970-01-01
      • 2012-06-14
      • 1970-01-01
      • 2018-04-02
      • 2023-03-08
      相关资源
      最近更新 更多