我正在创建复杂的UserControl,对我来说很烦人的是应用程序在创建模式下部分显示它 意味着最终用户可以看到所有创建/绘制过程(此UserControl上的控件显示延迟,渐变框绘制它们填充等)
我很确定有一些命令隐藏此过程并仅在完全绘制时显示控件 ...
有人可以建议如何存档吗?
答案 0 :(得分:3)
确保您的UserControl已标记为双缓冲。这确保了当UserControl的客户区需要绘图时,它就会在屏幕外的缓冲区上完成,然后在完成时将其显示在屏幕上。这使它成为原子,你不应该看到它们发生的绘制动作。要添加它,请在UserControl构造函数中使用以下内容...
SetStyle(ControlStyles.OptimizedDoubleBuffer |
ControlStyles.AllPaintingInWmPaint |
ControlStyles.UserPaint, true);
答案 1 :(得分:1)
嗯,我不认为存在这样的东西,但有这些东西:
您也可以调用Invalidate(强制重绘表单)
这适用于初始化,但我不明白你是否希望每次控件被绘制或仅在创建时
但是我不知道如何拦截“绘图前”和“绘图后”(绘画我觉得它是在绘图之前触发的,不确定)