フォームの透明度(不透明度)を設定する(フォームを半透明にする) [C#]

21でWindowsフォームアプリケーションのフォームの透明度(不透明度)を設定する方法を紹介します。
透明度を指定することでフォームを半透明にできます。

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

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

フォームの透明度(不透明度)を設定する

フォームの透明度(不透明度)を設定するには、System.Windows.Forms名前空間にあるFormクラスのOpacityプロパティを使用します。

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

フォームの透明度(不透明度)はフォームデザイナーのプロパティグリッドで設定できます。

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

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

デザイナーのプロパティグリッドにあるOpacityプロパティのテキストボックスに0~100の値を入力します。0を指定すると完全に透明になります。100を指定すると完全に不透明になります。ですのでOpacityプロパティに指定するパーセンテージは不透明度を表す値になります。

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

ここではサンプルとして75%に設定します。

フォームデザイナーのOpacityプロパティを75に設定

不透明度を75%に設定したフォームを表示します。

不透明度75%のフォームを表示

コードで設定する

フォームの透明度(不透明度)はコードで設定することもできます。

コードで指定する場合はパーセントではなく0~1の値を指定します。50%であれば0.5D、75%であれば0.75Dと指定します。

半透明のフォームをダイアログ表示

サンプルプログラム

ここではサンプルプログラムとして、フェードイン、フェードアウトをするダイアログフォームを作成してみます。
フェードインとフェードアウトはタイマー(System.Windows.Forms名前空間にあるTimerクラス)を使用して、0.01秒ごとに1%ずつフォームの不透明度を上げたり下げたりします。

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

フォームのデザイナーにタイマーを追加します。

フェードイン・フェードアウトするフォームのデザイン

ソースコード

フォームのLoadイベントでフェードインします。
フォームのFormClosingイベントでフェードアウトします。

プログラムの実行

プロジェクトをビルドしてプログラムを実行(デバッグ)します。
実行するとフォームが徐々に表示されます。
フォームの閉じるボタン(×ボタン)をクリックすると、フォームが徐々に消えていきます。