0

MFC および VB6 アプリケーションでホストされている ActiveX コントロールに取り組んでいます。

この ActiveX には、それ自体が WinForms ElementHost によってホストされる WPF コントロールが含まれています。

MFC > .NET ActiveX > WinForms ElementHost > WPF UserControl

ユーザーがコントロールを右クリックしたとき、キーボードの矢印キーを使用してコンテキスト メニュー内を移動できる必要があります。

右クリックが発生したときにコントロールにフォーカスがある場合、すべて正常に動作します。

ただし、ユーザーが右クリックしたときにフォーカスがホスト アプリケーションにある場合、キーボード イベントは引き続きホスト MFC アプリケーションに送信されます。

右クリックを検出したときに、WPF コントロールで Focus() メソッドを呼び出そうとしましたが、機能しません。

誰かアイデアはありますか?

ありがとう。

4

1 に答える 1

0

回避策を見つけました。

PreviewMouseRightButtonDownWPF フォームでイベントが発生したらFocus、WinForm ホスト コントロールでメソッドを呼び出します。

理由はよくわかりませんが、これにより、ユーザーはキーボードを使用してコンテキスト メニュー内を移動できます。

于 2012-06-28T08:25:11.880 に答える