gpt4 book ai didi

c# - 强制在功能持续期间不绘画

转载 作者:太空宇宙 更新时间:2023-11-03 22:14:44 24 4
gpt4 key购买 nike

我写了一个程序,画了一个棋盘游戏的具体情况(我觉得英文应该叫“Ludo”)。现在我可以绘制所有的区域和 pawn 等,但是如果移动了 pawn,我必须重新绘制那个 pawn。问题是当我这样做时屏幕会闪烁很短的时间。这可能是因为我首先清除了所有字段和 pawn,然后重新绘制它们(我将对此进行改进,但我认为问题仍然会以较小的形式出现),然后在我清除之间屏幕闪烁一切,直到我重画一切。有没有办法告诉 C# 不要重绘,即使我特别调用类似 this.Controls.Clear() 的东西,直到我告诉它重绘?

我已经用 this.SuspendLayout() 试过了,因为顾名思义它应该这样做,但这不起作用。

最佳答案

在 Winforms 自定义图形中,闪烁总是有点问题。

试试这个:不要在 Form 的某处绘制 pawn 的位置,而是将它们绘制到 Bitmap 上。全部完成后,只需将窗体上 PictureBox 的图像更改为位图即可。将使用新图像重新绘制表单。您可以使用两个 Bitmap 对象(公认的相当大)并每次都清理它们以避免程序成为内存消耗者。瞧,您现在有了“翻页”图形,可以独立于其他重绘表单请求来绘制和显示这些图形。

关于c# - 强制在功能持续期间不绘画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5464970/

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