アプリケーションで現在開いているウィンドウをフォアグラウンド ウィンドウとして設定するにはどうすればよいでしょうか。
このシナリオは、たとえば、条件が満たされるまでユーザーに別のアプリケーションを表示し、その後、アプリケーションにフォーカスを当てる必要がある場合に有効です。
もちろん、SetForegroundWindow API を使用すると、ウィンドウを前面に簡単に表示できます。ただし、これには System.Runtime.InteropServices 名前空間の操作が含まれるため、アプリケーションにアンマネージ コードが含まれます。より簡単なアプローチは、これを行う方法を探しているときに見つけたトリックです。
フォームのTopMost
プロパティをtrue
に設定し、すぐに に戻すだけfalse
です。
に設定するとtrue
、フォーカスされているかどうかに関係なく、他のウィンドウの上に表示するオペレーティング システムが決定されます。次に、プロパティを に戻すことにより、デフォルトの動作を復元しますfalse
。別のアプリケーションがフォーカスを取得すると、ウィンドウはバックグラウンドに移動し、フォアグラウンドになります。
そのため、そのような機能が必要な場所に次のコード スニペットを挿入します。
this.TopMost = true;
this.TopMost = false;
多くのコード行を節約するための巧妙なトリックです!