gpt4 book ai didi

c# - 我如何调用绘画事件?

转载 作者:IT王子 更新时间:2023-10-29 03:53:27 24 4
gpt4 key购买 nike

我的程序在其面板上绘制文本,但如果我想删除文本,我必须重新绘制。

如何手动调用(引发)绘画事件?

最佳答案

在您的表单或控件的方法中,您有 3 个选择:

this.Invalidate();  // request a delayed Repaint by the normal MessageLoop system    
this.Update(); // forces Repaint of invalidated area
this.Refresh(); // Combines Invalidate() and Update()

通常,您只需调用 Invalidate() 并让系统将其与其他屏幕更新结合起来。如果你很着急,你应该调用 Refresh() 但是你会冒着由于其他控件(尤其是父控件)失效而连续多次重绘的风险。

Windows(Win32 和 WinForms.Net)处理此问题的正常方式是等待 MessageQueue运行空,然后处理所有无效的屏幕区域。这是有效的,因为当某些事情发生变化时,通常会级联到其他事情(控制)也会发生变化。

Update() 最常见的情况是当您在 for 循环中更改属性(例如,label1.Text,这将使标签无效)并且该循环暂时阻塞消息循环。无论何时使用它,您都应该问问自己是否不应该改用线程。但答案并不总是肯定的。

关于c# - 我如何调用绘画事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/952906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com