C# 双缓冲用户控件的刷新问题
我有一个相当复杂的双缓冲用户绘制控件。效果非常好,除非另一个窗口在其上移动。这将导致控件中出现未刷新的漏洞。它没有正确地重新粉刷自己。我已经尝试了所有常用的修复方法C# 双缓冲用户控件的刷新问题,c#,winforms,C#,Winforms,我有一个相当复杂的双缓冲用户绘制控件。效果非常好,除非另一个窗口在其上移动。这将导致控件中出现未刷新的漏洞。它没有正确地重新粉刷自己。我已经尝试了所有常用的修复方法 SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); SetStyle(ControlStyles.DoubleBuffer, true); 没用。我在窗口中放置了一个计时器控
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.DoubleBuffer, true);
没用。我在窗口中放置了一个计时器控件,并将其设置为每10毫秒刷新一次。这似乎非常模糊
如果我关闭双缓冲,控件将正确刷新,但由于闪烁而混乱
编辑:用户控件中没有子窗口。使用图形方法在绘制事件中绘制用户控件的整个曲面。使用WS_EX_COMPOSITED修复了拖拽问题,但tooptips在关闭时留下空白区域仍然存在问题。到目前为止,唯一的修复方法是刷新计时器,我希望有人了解更多的windows魔法。听起来你正在接近Winforms绘图的极限:)看看这里发布的这个问题的答案:WS_EX_COMPOSITED似乎修复了重叠窗口的重新绘制。工具提示仍然存在导致绘制空白区域的问题。但我很高兴在这一点上解决任何问题。