无效方法有什么作用?

时间:2011-06-21 12:23:55

标签: c# .net winforms

invalidate方法在winform app中做了什么?

Invalidate() 方法control class 命名空间System.Windows.Forms内附带六重载表单。< / p>

感谢.....

6 个答案:

答案 0 :(得分:32)

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

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

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

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

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

在Windows窗体中无效控件时,您要求重绘

答案 1 :(得分:6)

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

来自MSDN:

“使控件的整个表面无效并导致重绘控件。”

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

答案 2 :(得分:3)

它会导致控件重新绘制。 http://msdn.microsoft.com/en-us/library/system.windows.forms.control.invalidate.aspx

除非您正在进行一些低级图形操作,否则很少需要调用此方法。

答案 3 :(得分:2)

Invalidate()方法将重绘控件。例如,如果您使用包含标签和文本框的面板“panel1”,则以下代码将重绘标签和文本框(通过调用Paint事件)

panel1.Invalidate();

答案 4 :(得分:1)

这是一种GUI渲染方法 - 它强制窗口重绘控件的可见部分。

答案 5 :(得分:1)

它基本上调用控件的PaintBackground和Paint方法。