C#用户控件重绘

问题描述:

我有一个C#应用程序,它有一个mainform和几个自定义用户控件。C#用户控件重绘

当我移动mainform时,用户控件继续重绘,当我停止移动mainform时,它们再次重绘。

我该怎么做才能禁用此重新绘制?

+0

有没有闪烁的屏幕?你想停止闪烁 – Nighil 2011-02-15 08:42:02

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

以外,你可以订阅的形式移动事件,并以类似的方式,以什么在这个问题描述关闭画上的子控件...

Have a look here

+0

嗯......问题是,当mainform移动时,我没有重新绘制控件时根本没有绘制控件。我想要的:只有当mainform移动时,重绘子控件#1并保持原样(不重绘)。 – jfronner 2011-02-15 09:33:01

你不应该强行无效()自己。我假设你在控制中进行一些自定义绘画?在InitializeComponent()之后的构造函数中;你有

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

this previous question的回答讨论了如何使用WM_SETREDRAW Win32 API暂停和恢复绘制。它包含一个漂亮的包装类;也许它会帮助你。