フォームを最上位フォームとして表示する(最前面に表示する) [C#]

C#でWindowsフォームアプリケーションのフォームを最上位フォームとして表示する(最前面に表示する)方法を紹介します。
フォームを最上位フォームとして表示すると、Windowsのタスクマネージャーの「オプション」メニューにある「常に手前に表示」を指定した時と同様に、他のウィンドウ(フォーム)に隠れないウィンドウを作成できます。

本記事では、Visual Studioで作成したWindowsフォームアプリケーションのプロジェクトに記述するコードを記載します。
Windowsフォームアプリケーションのプロジェクトを作成する方法については、以下の記事を参照してください。

Windowsフォームアプリケーションのプロジェクト(ソリューション)を作成する。[C#]
Visual StudioでC#のWindowsフォームアプリケーションのプロジェクト(ソリューション)を作成する方法を記載します。 ...

フォームを最上位フォームとして表示する

フォームを最上位フォームとして表示する(最前面に表示する)には、System.Windows.Forms名前空間にあるFormクラスのTopMostプロパティを使用します。
TopMostプロパティはbool型になっていますので、TrueまたはFalseの真偽値を指定します。

デザイナーのプロパティグリッドで設定する

フォームを最上位フォームとして表示するかどうかはフォームデザイナーのプロパティグリッドで設定できます。

フォームデザイナーを開きます。
フォームデザイナーを開いたらプロパティウィンドウを表示します。
プロパティウィンドウが表示されていない場合はメニューバーの「表示」メニューにある「プロパティ ウィンドウ」をクリックするかF4キーを押してください。

フォームデザイナーのプロパティグリッド
上記の画像のプロパティグリッドは項目別ではなくアルファベット順で表示しています。

プロパティグリッドのTopMostプロパティのドロップダウンリストボックスから最上位フォームとして表示するかどうかを選択します。
最上位フォームとして表示する場合「True」最上位フォームとして表示しない(通常のフォームとして表示する)場合は「False」を選択します。

フォームデザイナーのTopMostプロパティ

コードで設定する

フォームを最上位フォームとして表示するかどうかはコードで設定することもできます。

最上位フォームにする

最上位フォームにしない

サンプルプログラム

フォームを最上位フォームとして表示する(最前面に表示する)サンプルプログラムを作成します。

ユーザーインターフェース

フォームには最上位フォームとして表示するかどうかを指定するチェックボックス(checkBox1)、フォームのインスタンスを生成して表示するボタン(button1)、フォームのTopMostプロパティの状態を取得して表示するボタン(button2)を配置します。

最上位フォームとして表示するフォームのデザイン

ソースコード

ボタンをクリックした際のイベントの処理を記述します。

プログラムの実行

プロジェクトをビルドして実行(デバッグ)して画面を表示します。

サンプルプログラムのフォームを起動

チェックボックスのチェックを付けてフォームを表示するbutton1をクリックします。

最上位フォームとして表示する

フォームが最上位フォームとして最前面に表示され、フォームを表示したフォームをクリックしても表示されたフォームは背面に移動しません。

チェックボックスのチェックを外してフォームを表示するbutton1をクリックします。

最上位フォームとして表示しない

フォームが最前面に表示されますが、フォームを表示したフォームをクリックすると表示されたフォームは背面に移動します。