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 上。我是否需要在自定义控件中执行任何特定操作以允许在顶部进行绘图?