PictureBoxコントロールの上に配置したLabelコントロールはBackColorプロパティをTransparentにしても透明になったようには見えません。これはLabelコントロールの親コントロールがフォームであり、フォームにあわせてLabelコントロールの背景が設定されるためです。
よってこの問題を解決するには、Labelの親コントロールをPictureBoxにすればよい訳です。
次の例では、Label1という名前のLabelコントロールの親コントロールをPictureBox1という名前のPictureBoxコントロールとし、さらにLabel1の位置を調節しています。(Label1の位置を調節している部分はおまけです。Label1の位置が適当でないと、Label1がPictureBox1からはみ出して、表示されなくなります。)
'Label1の親コントロールをPictureBox1とする PictureBox1.Controls.Add(Label1) 'Label1の位置をPictureBox1内の位置に変更する Label1.Top = Label1.Top - PictureBox1.Top Label1.Left = Label1.Left - PictureBox1.Left
//Label1の親コントロールをPictureBox1とする PictureBox1.Controls.Add(Label1); //Label1の位置をPictureBox1内の位置に変更する Label1.Top = Label1.Top - PictureBox1.Top; Label1.Left = Label1.Left - PictureBox1.Left;
上記のような理由以外に、BackColorプロパティをTransparentにしても透明にならない場合があります。例えば、コントロールのFlatStyleプロパティがSystemになっている場合が相当します。LabelコントロールのFlatStyleプロパティがSystemになっているならば、別の値に変更してください。
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。