创建新表单后,我通常会执行这个仪式:为什么DoubleBuffered默认禁用?
- 将名称改为有意义的;
- 输入a
Caption
; - 更改位置属性(DefaultPosOnly几乎不会满足用户的期望);
- 将
ShowHint
设置为true
; - Set
DoubleBuffered
totrue
;
我一直想知道为什么默认值是'假'。对我来说,它只是低技术和蹩脚的,在我的新机器上,我没有注意到性能上的差异。
旧计算机,VNC,远程桌面或虚拟机上的doublebuffering问题可能是?
你把它打开还是关闭?任何建议?
+1不错的答案。 Nitpick:将“快速复制”替换为“交换”或其他没有给出印象的其他内容,实际上是进行缓冲区复制。缓冲区交换通常是简单的指针交换。 – 2009-09-11 02:21:54
好点,我已经更新了答案。当然,在Windows Forms.NET中,还有一个“假装”双缓冲,实际上它只是一个内存拷贝。 – Ash 2009-09-11 02:26:56
当'DoubleBuffered'为true时,控件响应如下的画图消息:它创建一个位图,绘制位图,调用BitBlt将位图复制到窗口上,然后销毁该位图。这不仅仅是一个简单的指针交换。 – 2009-09-11 04:49:21