透過なカスタムコントロールについて
- 題名: 透過なカスタムコントロールについて
- 著者: かつどん
- 日時: 2004/09/02 17:09:48
- ID: 5961
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 透過なカスタムコントロールについて
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2004/09/06 2:11:57
- ID: 6000
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 透過なカスタムコントロールについて
- 著者: かつどん
- 日時: 2004/09/10 12:11:14
- ID: 6105
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.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の色をもってきてその色で塗りつぶしているように見えます。
どなたか背景を透過したコントロールのご経験がおありならお教えいただければと思います。
新しくカスタムコントロールを挿入した場合
┌─┐ ーーーーー ┌─┐
│┌│─┐このように │┌──┐このようにコントロール
└─┘□│透明にした └│ □│の背景は色で
└──┘いのですが └──┘塗りつぶされてしまいます
図中の□をもつコントロールがカスタムコントロールと思ってください。