我在表单上有几个用户绘制的控件,不幸的是,当显示表单时,用户绘制的控件显示的是先前的表单背景而不是当前的表单背景。
OnPaint事件非常简单,OnBackgroundPaint事件为空......
像这样:
protected override void OnPaint(PaintEventArgs pe)
{
pe.Graphics.DrawImageUnscaled(_bmpImage, 0, 0);
}
protected override void OnPaintBackground(PaintEventArgs pevent)
{
//Leave empty...
}
如何将当前背景显示为显示的透明度,而不是上一个表单的背景?
答案 0 :(得分:1)
您需要设置窗口样式 - 这是nice basic article。
答案 1 :(得分:1)
您似乎重写了OnPaintBackground
方法,没有对背景做任何事情。由于你把它留空了,你可能不应该首先覆盖它。当你让默认的OnPaintBackground
处理程序完成它的工作时会发生什么?不应该自动正确地绘制当前控件的背景吗?
P.S。我从未使用自定义绘画.Net控件。我只是在猜测试图找到解决问题的方法。请原谅我,如果我建议完全关闭...