|
.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プロパティの設定が行われるのもこのときである。![]()
| カテゴリ:Windowsフォーム 処理対象:Labelコントロール カテゴリ:Windowsフォーム 処理対象:PictureBoxコントロール 使用ライブラリ:Controlクラス(System.Windows.Forms名前空間) |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




