2012-02-07 9 views
0

私はテキストボックスのみを含む小さなフォームアプリケーションを作成しました。低レベルのキーボードフックを使用してショートカットキーを有効にして、必要に応じてアプリケーションにフォーカスを合わせました。 すべて正常に動作しています。アプリケーションが適切な制御(フォーカス)を初めて得るために、ショートキー、つまり(左コントロールキー)+(左コントロールキー)を押します。 ただし、ショートカットキーを無効にしてやり直すと、タスクバーのアプリケーションのアイコンが点滅してフォームにフォーカスが得られなくなり、タイトルバーがグレー表示されます。フォームがCで適切なフォーカスを得ていない#

詳細情報:

  1. 停止にフォームの不透明度は低下しているが、内部に、それは上に残っているので、全体の時間は、フォームが
  2. このフォームは他のクラスから起動され、画面上に表示されます応用。フォームのアクティブ化イベント不透明で
  3. はそれが私がform.Activateを使用して、アプリケーションにフォーカスを与えている

今非常によく見える()私もfrom.Visible試してみましたので、増加したが、運とされます。 アクティベーションは、タスクバーのアイコンが点滅した後初めて初めて機能します。

これはなぜ起こっているのですか?

+0

これは正常です。別のアプリからフォーカスを奪うことはできません。フックの代わりにRegisterHotKey()を使用してください。 –

答えて

1

この回答はあなたにも当てはまります: https://stackoverflow.com/a/3789985/64121別のアプリからフォーカスを奪うためには、AttachThreadInput API関数を使用する必要があります。

+0

ありがとうございました。問題は解決しましたが、部分的にはアクティベーションが問題なく動作しましたが、問題はアプリケーションでフォーカスがとられ、繰り返しクリックすると非アクティブになるという問題です。この状態は、自分のアプリケーションをクリックして他のアプリケーションをクリックした場合にのみ解決されます。同様の質問がここで尋ねられました。http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/546858a1-5122-478a-944d-8c6e8383b905/解決策を理解できません。最後に提供されています。誰かが助けてくれますか? – vikramaditya234

関連する問題