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

透過なカスタムコントロールについて

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

いつもお世話になっております。
フォームに貼り付けた時、描画及び内部コントロールはそのまま描画し、背景が透明になるカスタムコントロールを検討しています。

今回は、GDI+を利用しておりますのでリージョンを使用する方法は考えずそのままBackColorのみ透明にできないかと考えております。
この場合、カスタムコントロールのコンストラクタにて
Me.SetStyle(SupportTranceparentBackColor,true)
Me.SetStyle(SupportUserPaint,true)
[Me.SetStyle(ResizeRedraw,true)]
Me.BackColor = Color.Transparent

として、
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
MyBase.OnPaint(e)
// 図形描画
End Sub
を行い、

Protected Overrides Sub OnPaintBackground(ByVal prevent As System.Windows.Forms.PaintEventArgs)
(記述せず)
End Sub
としておりますがこれでは背景は透けませんでした。

いろいろ試しましたが
なんとなくBackColorをTransparentにする行為が、単純にParentの色をもってきてその色で塗りつぶしているように見えます。
どなたか背景を透過したコントロールのご経験がおありならお教えいただければと思います。

新しくカスタムコントロールを挿入した場合
 ┌─┐  ーーーーー  ┌─┐  
 │┌│─┐このように │┌──┐このようにコントロール
 └─┘□│透明にした └│ □│の背景は色で
  └──┘いのですが  └──┘塗りつぶされてしまいます

図中の□をもつコントロールがカスタムコントロールと思ってください。
■No5961に返信(かつどんさんの記事)
> いつもお世話になっております。
> フォームに貼り付けた時、描画及び内部コントロールはそのまま描画し、背景が透明になるカスタムコントロールを検討しています。

お望み通りのものか分かりませんが、次のようなページがあります。

Bob Powell's Windows Forms Tips and Tricks
Transparent Windows Forms Controls
http://www.bobpowell.net/transcontrols.htm
管理人さま
いつもありがとうございます。
急な用件がはってしまい、お返事遅れました。申し訳ありません。
お返事いただきありがとうございました。
また戴いた記事を検証し、結果を報告させていただきます。

検証までに時間がかかりますが、何卒ご容赦を_(__)_

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