single.php

C#でフォームの背景を透過する方法

C#で「Windows フォーム アプリ」を作る場合にフォームの背景を透明(透過)にする方法について備忘録的に投稿します。

フォームの背景透過

Visual Studioで「 Windowsフォーム アプリ」を作る場合に、フォームの背景を透明にして背景を透過にする方法です。

やり方は簡単で、例えば、labelコントロールを貼り付けたフォームのLoadイベントに次のコードを追加します。

private void Form1_Load(object sender, EventArgs e)
{
  this.TransparencyKey = this.BackColor;

}

実行結果がこんな感じ。(背景はデスクトップの壁紙です)labelコントロールは表示されてフォームの背景が透明になります。

フォームのプロパティ画面でも「TransparencyKey」は設定できますが、BackColorが一覧から選択できないので、コードで設定を行います。

Opacityプロパティは全体が透明になる

同じ様にフォームの透明度を設定する「Opacity」は、効果が全体的になるので使い辛い部分があります。

例えば、同じフォームのLoadイベントに次のようなコードを追加した場合。

private void Form1_Load(object sender, EventArgs e)
{
  this.Opacity = 0.8;
}

右辺を0にすると透明になりますが、実行結果が見せ難くなるので、あえて0.8にしてあります。

実行すると、こんな感じ。

labelコントロールまで透明になってしまうため、フォームだけを透明化したい場合には「TransparencyKey」プロパティを使った方が簡単に透明化ができます。

まとめ

「Windows フォーム アプリ」でフォームを透明化する際には「TransparencyKey」プロパティを設定することで、簡単に背景透過したフォームに変更することができます。

C#を使って、背景透過フォームを作りたい方の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です