C#用户控制重绘

时间:2011-02-15 08:34:40

标签: c# .net winforms repaint

我有一个带有mainform的C#应用​​程序和几个自定义用户控件。

当我移动主窗体时,用户控件会不断重新绘制,并在我停止移动主体时再次重新绘制。

如何禁用此重新绘制?

3 个答案:

答案 0 :(得分:2)

this previous question的答案讨论了如何使用WM_SETREDRAW Win32 API暂停和恢复绘图。它包括一个很好的包装类;也许它会帮助你。

答案 1 :(得分:0)

如果它的闪烁令你烦恼,你可以尝试将控件上的DoubleBuffered属性设置为true。

除此之外,您可以订阅表单移动事件并以类似于此问题中描述的方式关闭子控件上的绘画......

Have a look here

答案 2 :(得分:0)

你不应该强迫自己Invalidate()。我假设你在控制中做了一些自定义绘画?在InitializeComponent()之后的构造函数中;你有吗

    SetStyle(ControlStyles.UserPaint, true);
    SetStyle(ControlStyles.AllPaintingInWmPaint, true);