public class TransparentPanel : Panel
{
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x00000020; // WS_EX_TRANSPARENT
return cp;
}
}
protected override void OnPaintBackground(PaintEventArgs e)
{
//base.OnPaintBackground(e);
//e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(200, 0, 0, 0)), this.Bounds);
Color bk = Color.FromArgb(200, this.BackColor);
e.Graphics.FillRectangle(new SolidBrush(bk), e.ClipRectangle);
}
}
このパネルをフォームに適用しました。フォームの下に他のコントロールがあります。パネルがform.controlsに配置され、他のカスタムコントロールが別のパネルに配置され、それがform.controlsに配置されていても、一部はこの新しいパネルをオーバードローしているようです。上に描画できるようにするために、カスタム コントロールで何か特別なことをする必要がありますか?