0

アプリケーションで現在開いているウィンドウをフォアグラウンド ウィンドウとして設定するにはどうすればよいでしょうか。

このシナリオは、たとえば、条件が満たされるまでユーザーに別のアプリケーションを表示し、その後、アプリケーションにフォーカスを当てる必要がある場合に有効です。

4

2 に答える 2

1

もちろん、SetForegroundWindow API を使用すると、ウィンドウを前面に簡単に表示できます。ただし、これには System.Runtime.InteropServices 名前空間の操作が含まれるため、アプリケーションにアンマネージ コードが含まれます。より簡単なアプローチは、これを行う方法を探しているときに見つけたトリックです。

フォームのTopMostプロパティをtrueに設定し、すぐに に戻すだけfalseです。

に設定するとtrue、フォーカスされているかどうかに関係なく、他のウィンドウの上に表示するオペレーティング システムが決定されます。次に、プロパティを に戻すことにより、デフォルトの動作を復元しますfalse。別のアプリケーションがフォーカスを取得すると、ウィンドウはバックグラウンドに移動し、フォアグラウンドになります。

そのため、そのような機能が必要な場所に次のコード スニペットを挿入します。

this.TopMost = true;
this.TopMost = false;

多くのコード行を節約するための巧妙なトリックです!

于 2013-07-14T18:25:09.903 に答える