gpt4 book ai didi

.net - 闪烁且 "CreateParams"

转载 作者:行者123 更新时间:2023-12-01 17:03:27 28 4
gpt4 key购买 nike

我想避免应用程序面板中的闪烁,在4个月前进行谷歌搜索之后,在尝试子类化面板之后,在此处询问两三次之后,在其他论坛询问之后......没有人有解决方案,但今天我在最后一个答案中奇迹般地找到了解决方案:Is their a way to stop the picturebox from flickering when being resized?

Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or &H2000000
Return cp
End Get
End Property 'CreateParams

现在我想知道这几行代码到底做了什么。我需要了解该代码对我的应用程序做了什么,

有避免闪烁的好方法吗?

MSDN 说:

“CreateParams 属性不应被覆盖并用于调整派生控件的属性”

但为什么不呢?,这是我发现真正摆脱面板闪烁的唯一方法,所以这就是为什么我想更多地了解我上面发布的代码,我想了解所有订单,以及它的好处子和底片,一切都受欢迎......

有人可以向我解释一下该代码的更多信息吗?

UPDATE:

我已经在我的所有应用程序中测试了“闪烁解决方案”,是的,它是一个闪烁解决方案...但有负面影响,因为我的程序速度变慢了 -200%,我的意思是当使用该覆盖子时程序变得非常慢,大约慢了 6 倍,因此按原样使用 override sub 不是一个好主意。

有人知道我是否可以在不重新调整我的应用程序的情况下避免闪烁?

最佳答案

每次重绘控件时,也必须重绘背景;您的应用程序可能没有声明要完成的资源的操作。您使用的解决方案基本上设置一个标志来指示您希望表单及其绘制的所有内容都进行双缓冲。您可能会因此消耗不必要的资源量。相反,您可以将参与图像大小调整的每个对象的双缓冲属性设置为 true。计算机的资源有限,您应该保留尽可能多的资源。这就是微软预定义这么多参数和资源释放过程的原因。

编辑:PictureBox 默认情况下采用双缓冲来处理 onpaint 事件。您仍然需要背景对象上的双缓冲区。

关于.net - 闪烁且 "CreateParams",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16455305/

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