.NET TIPS

PictureBoxコントロール上に文字を表示するには?

デジタルアドバンテージ
2004/10/22

 Windowsアプリケーションでフォーム上に文字列を表示するには、Labelコントロールを利用するのがお手軽である。このとき、Labelコントロールの背景色を指定するBackColorプロパティに「Transparent」を設定することにより、文字以外の部分を透明にできる。これにより、文字のストローク部分のみの表示が可能となる。

 しかし、そのようなLabelコントロールを、画像を表示しているPictureBoxコントロール上に配置しても文字の背景が正しく透明にならず、次のような表示となってしまうことがある。

Labelコントロールの背景が正しく透明になっていない例
PictureBoxコントロール上に配置したLabelコントロールの背景が正しく透明にならないのは、Labelコントロールの親コントロールがフォームとなっているためである。

 これは、Labelコントロールの親コントロールがフォームとなっているためだ。つまり、背景色をTransparentに設定した場合には、親コントロールに対して透明となるのである。この例の場合には、Labelコントロールの背景色は、フォームの背景色により描画されていることになる(これはフォームの背景色を変更すれば確認できる)。

 Labelコントロールの背景をPictureBoxコントロールに対して透明にするには、Labelコントロールの親コントロールを、フォームではなくPictureBoxコントロールに設定すればよい。これはC#やVB.NETでは次のようなコードにより記述できる。

Label1.Parent = PictureBox1

 Parentプロパティは、親コントロールを示すプロパティである(Controlクラス(System.Windows.Forms名前空間)から継承したプロパティ)。このコードをフォームのLoadイベント・ハンドラ(Visual Studio .NETにより自動生成されるコードではForm1_Loadメソッド)などの中に記述しておけばよい。これによりプログラムの実行画面は次のようになる。

Labelコントロールの背景が正しく透明になっている例
PictureBoxコントロールをLabelコントロールの親コントロールとして設定することにより、Labelコントロールの背景がPictureBoxコントロールの画像で描画される。

 Visual Studio .NETのWindowsフォーム・デザイナにより自動生成されるコードでは、フォームのControlsプロパティのAddメソッドにより、フォームとフォーム上に配置したコントロールが関連付けられるが、Parentプロパティの設定が行われるのもこのときである。End of Article

カテゴリ:Windowsフォーム 処理対象:Labelコントロール
カテゴリ:Windowsフォーム 処理対象:PictureBoxコントロール
使用ライブラリ:Controlクラス(System.Windows.Forms名前空間)
 
この記事と関連性の高い別の.NET TIPS
Windowsフォームで簡単に画像を表示するには?
DataGridコントロールで入力中のセルをハイライト表示するには?
Windowsフォーム上のすべてのコントロールを列挙するには?
スクロールバー付きでPictureBoxコントロールに画像に表示するには?
基本フォームから継承された内容を派生フォームでカスタマイズするには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間