DOBON.NET DOBON.NETプログラミング掲示板過去ログ

フォーム上のラベルを透明に

環境/言語:[WinXP/VB.NET]
分類:[.NET]

以前この掲示板でお世話になりました。
またよろしくお願いします。

Formを透明に、また、FormにあるLabelコントロールの背景も透明にして、
Labelのtextだけを表示したいと思っています。

やったこと:
Label1のBackColorプロパティを Transparent に。
FormのLoadイベント時に
Me.TransparencyKey = Me.BackColor

これでFormは透明になったのですが、Labelは透明になりませんでした。
過去ログにはカスタムコントロールを作らないとできないと書いてありましたが、
どうにもならないものなのでしょうか?
よろしくお願いします。

参考過去ログ:
http://dobon.net/vb/bbs/log3-2/681.html
> Formを透明に、また、FormにあるLabelコントロールの背景も透明にして、
> Labelのtextだけを表示したいと思っています。

FormにDrawStringで文字を描くのが一番いいと思うのですが、不都合があるのでしょうか?
レスありがとうございます。

> FormにDrawStringで文字を描くのが一番いいと思うのですが、不都合があるのでしょうか?
特に不都合はありません。
ただ、現在作ってるのプログラムにラベルが使われているので、
なんとかならないかなぁと思ったのです。

ちょっと作り直してDrawStringで表示したいと思います。
ありがとうございました。
解決済み!
> ただ、現在作ってるのプログラムにラベルが使われているので、
> なんとかならないかなぁと思ったのです。

「今あるものを活かす」ということなら、ラベルは削除せず、不可視にしてそのまま置いておいたらどうでしょう。

フォームのコードで DrawString() する際に、不可視のラベルの位置と Text プロパティに入った文字列を使うようにするといいんじゃないでしょうか。
> フォームのコードで DrawString() する際に、不可視のラベルの位置と Text プロパティに入った文字列を使うようにするといいんじゃないでしょうか。

アドバイスありがとうございます。
不可視にして、ラベルの位置等を使用してうまくいきました。

ありがとうございました。
■No10188に返信(馬三郎さんの記事)
>>フォームのコードで DrawString() する際に、不可視のラベルの位置と Text プロパティに入った文字列を使うようにするといいんじゃないでしょうか。
>
> アドバイスありがとうございます。
> 不可視にして、ラベルの位置等を使用してうまくいきました。
>
> ありがとうございました。

解決してるみたいなので、タイトルの質問に対しての回答ですが、
結論として、ラベルを透明にする事はできません。
が別な方法(ピクチャボックスを使う等)で可能な事もあります。
 http://bbs.pegalabo.net/c-board.cgi?cmd=ntr;tree=39;id=dotnet
しかし、いろいろと面倒です。
Labelの背景を透過にする方法は、私の掲示板でもいろいろ出ていますが、ズバリ解決できる方法は見つかっていません。

http://dobon.net/vb/bbs/log3-14/8021.html

では、

フォームやコントロールの形を変える
http://dobon.net/vb/dotnet/form/formregion.html



Creating transparent Windows Forms controls.
http://www.bobpowell.net/transcontrols.htm

を使った方法が紹介されています。
ぺがらぽさん、管理人さん色々とありがとうございます。

>結論として、ラベルを透明にする事はできません。
作ってるプログラムの方はフォームに描画することで目的は達成できましたが、
今後また透明にしなければいけないことがあると思い色々と調べてみました。
が、どこの掲示板も結論は出ていないようでした。
VB6.0ではラベルを透明にすることができたようなので(VB6.0は使ったことないので詳しいことはわかりませんが)、
この機能は需要がなかったのかなと思いましたw

今回皆様に教えていただいたおかげで、
今後同じようなことをする際に悩まなくて済みそうです。

解決してからもアドバイスして頂き、ありがとうございました。

また何かあったときはアドバイスしてください。
解決マークが消えてしまったので。
すいません。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板