无效方法有什么作用?

Ary*_*nsi 12 .net c# winforms

是什么invalidate方法做winform应用?

Invalidate() 方法带有6种重载内部形式control classSystem.Windows.Forms 命名空间.

谢谢.....

Mar*_*age 32

Windows窗体使用GDI进行渲染.GDI是Windows中的原始图形界面.DirectX是最初为游戏开发而创建的新界面,但现在也被更高级别的框架(如WPF)使用.

GDI基于绘制方法的概念.显示窗口时,Windows将向负责窗口的代码发送绘制消息.这将导致调用paint方法.然后,绘制方法应该将窗口的内容绘制到屏幕上.

当GDI程序想要更新显示的内容时,它不能直接将更新的图像绘制到屏幕上.相反,它必须告诉Windows一个区域需要更新.这称为使区域无效.然后,Windows将调用相关的绘制方法,提供有关无效内容和需要更新的信息.然后,绘制方法应将更新的内容绘制到屏幕上.

当窗口被拖过其他窗口时,也使用这种更新屏幕内容的方法.当开发GDI时,图形硬件非常慢,并且在Windows内部完成了很多工作来缓存位图,并且只能使更改的内容失效和更新.

当绘制重叠的窗口或子窗口时,它会回到前面以获得正确的视觉元素分层.这可能导致闪烁的背景被擦除和绘制,然后是前面的其他元素.如果重绘速度比屏幕刷新慢,您可能会注意到一些闪烁.这是使用Windows Forms创建的GDI应用程序的标志.

在Windows窗体中,当您使控件无效时,您请求重绘它.


asa*_*yer 6

要求窗口重绘无效窗口的客户区域.

来自MSDN:

"使控件的整个表面无效并导致重绘控件."

http://msdn.microsoft.com/en-us/library/598t492a.aspx

  • 它没有_force_.它_requests_重画. (2认同)