C# 用户绘制的控件正在使用以前的窗体背景

C# 用户绘制的控件正在使用以前的窗体背景,c#,.net,winforms,user-controls,onpaint,C#,.net,Winforms,User Controls,Onpaint,我在一个窗体上有几个用户绘制的控件,不幸的是,当显示窗体时,用户绘制的控件显示的是以前的窗体背景,而不是当前窗体背景 OnPaint事件非常简单,OnBackgroundPaint事件为空 像这样: protected override void OnPaint(PaintEventArgs pe) { pe.Graphics.DrawImageUnscaled(_bmpImage, 0, 0); } protected

我在一个窗体上有几个用户绘制的控件,不幸的是,当显示窗体时,用户绘制的控件显示的是以前的窗体背景,而不是当前窗体背景

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

像这样:

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

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

如何使当前背景成为显示的透明度,而不是上一个窗体的背景?

您需要设置窗口样式-这是一个。

您似乎正在覆盖
OnPaintBackground
方法,而不是对背景执行任何操作。既然您将它保留为空,那么首先可能不应该覆盖它。当您让默认的
OnPaintBackground
处理程序执行其工作时会发生什么?这不应该自动正确地绘制当前控件的背景吗

另外,我从未使用过自定义绘制.Net控件。我只是想帮你找到解决问题的办法。原谅我,如果我的建议完全错了