- - PR -
コントロールの背景を透明にする方法
1|2|3|4
次のページへ»
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-10-09 20:07
先日はいろいろありがとうございました。
おかげさまで、インタフェースの数は増えましたが かなり全体的に整理されスリム化されました。 さて、今回はなんとかコントロールを透明にする方法。。 というか、コントロールにバックグラウンドを塗らせない方法はないもののかと お知恵を拝借いたしたく投稿させていただきました。 ユーザーコントロールでうまくいかなかったので ラベルコントロールあたりを継承すればなんとかいけるかなと思ったのですがうまくいきません。 簡単にいえばすべて自分でお絵描きするから、箱の中のクリックイベントだけ拾ってくれればいいよ。 というようなコントロールはどこかにないものでしょうか? すべてのコントロールは必ずバックグラウンドを塗ってしまうものなのでしょうか? Visual Studio .NET 2003 の新機能の「四角形以外の Windows フォームの作成」 とかを読んでみましたが、どうもよくわかりません。 よろしくお願いいたします。 |
|
投稿日時: 2005-10-09 20:35
ジブです。書き忘れました。環境は
とりあえずVS.net 2003 での VBのwindowsアプリです。 |
|
投稿日時: 2005-10-09 20:52
おっ
OnPaintBackGroundをオーバーライドしたらとりあえず白くはなった。 背景をわざわざ消しているのかな? OnPaintClearみたいなのがあるのかなと思って探したけどみつからない。 Overridableになっていないだけ?? うーーーーん。。。。。いっぱいあって。よくわからん。 |
|
投稿日時: 2005-10-09 20:59
InitLayoutをオーバーライドしてなにもしないと
多分、これはほんとの透明なのかな? あかん、コンテナのコンテナが背景を保存している。 でも、ここで何かすればうまくいきそうな予感。 。。。。時間切れ。 |
|
投稿日時: 2005-10-09 21:20
System.Windows.Forms.Control.BackColor を
System.Drawing.Color.Transparent にすれば透明にはなりますけど。 あと、できればどういうことをやってるのかわかるような最小のコードを書いてくれませんか? そうするとこちらも勉強になって助かります。 |
|
投稿日時: 2005-10-09 22:26
aacuteさん、どうもありがとうございました。
うまくいきました。UserControlではだめだったですがLabelならうまくいきました。 最小限のコードはというほどではないです。 Inherits Label として初期化時に Me.Backcolor = Color.TransParent でOkでした。 Inherits UserControlではNGでした。 もっと早く気づくべきでした。 違う方向で四苦八苦してました。感謝です。 ありがとうございました。 |
|
投稿日時: 2005-10-09 22:50
あと、補足質問です。
TranceparentってプロパティウィンドウではWebタブに乗っているんですが これってWindowsアプリでは使って差し支えないものなのでしょうか? 以前、どこかで使えないとエラーが出たような記憶があって 使わないようにしていたのですが 私の気のせいなのかもしれません。 このタブは使っても大丈夫でしょうか? |
|
投稿日時: 2005-10-10 09:21
ジブです。
やはり、だめでした。 昨夜うまくいったと思ったのは気のせいでした。 TranceParentって、背景をぬらないのではなくて どうやら背景にコンテナ色を塗っているようです。 コントロール同士を重ねると、重なった部分ではコンテナ色が現れる。 なんでわざわざ背景をぬるんだろう?? なんとか背景を塗らせない方法はないものでしょうか? または、背景色を持たないコントロールはないものか? 作るとなるとめんどくさそうですよね?? |
1|2|3|4
次のページへ»