用户绘制的控件正在使用以前的表单背景

时间:2008-10-17 23:53:54

标签: c# .net winforms user-controls onpaint

我在表单上有几个用户绘制的控件,不幸的是,当显示表单时,用户绘制的控件显示的是先前的表单背景而不是当前的表单背景。

OnPaint事件非常简单,OnBackgroundPaint事件为空......

像这样:

    protected override void OnPaint(PaintEventArgs pe)
    {
        pe.Graphics.DrawImageUnscaled(_bmpImage, 0, 0);            
    }

    protected override void OnPaintBackground(PaintEventArgs pevent)
    {
        //Leave empty...
    }

如何将当前背景显示为显示的透明度,而不是上一个表单的背景?

2 个答案:

答案 0 :(得分:1)

您需要设置窗口样式 - 这是nice basic article

答案 1 :(得分:1)

您似乎重写了OnPaintBackground方法,没有对背景做任何事情。由于你把它留空了,你可能不应该首先覆盖它。当你让默认的OnPaintBackground处理程序完成它的工作时会发生什么?不应该自动正确地绘制当前控件的背景吗?

P.S。我从未使用自定义绘画.Net控件。我只是在猜测试图找到解决问题的方法。请原谅我,如果我建议完全关闭...