C#WinFormsアプリケーションにサードパーティのコントロールがロードされています。コントロールがフォーカスを盗むのを防ぐには?
このサードパーティのActiveXコントロールでメソッドを呼び出すと、フォーカスが非同期的にスチールされます。例:
// This call causes 3rd party to spawn a thread and steal focus
// milliseconds later.
foo3rdParty.DoSomething();
コントロールがフォーカスを奪うのを防ぐ方法はありますか?
おそらく、メッセージのフックを行い、フォーカスの変更を傍受してキャンセルする必要があります。これはコントロールからのかなり失礼な振舞いです。完全に取り除くことはできません。 – MusiGenesis
冗談はない、本当に失礼な行為です。私たちは開発者にこの問題を回避/回避する方法を尋ねました。彼は次のように語っています。「Win32 APIを使用してフォーカスを取り戻す」*問題は、スレッドがフォーカスを奪ったときの通知がないことです。ソル。私たちはこれを開発者に説明しましたが、返答は返されませんでした。 –
彼はなぜ彼のコントロールが最初にフォーカスを奪う必要があるのか説明しましたか?合理的な理由があれば、おそらく深刻な問題を隠しているハックフィックスです。私はこれがスペースシャトルライフサポート維持管理のようなものではないことを願っています。 – MusiGenesis