gpt4 book ai didi

C#双缓冲按钮

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

过去几个月我一直在做一个项目,遇到一个我无法解决的问题。我有一个带有控件的 Windows 窗体。当用户更改控件大小时,应用程序会触发 sizechanged 事件,我会相应地移动控件。主要问题是按钮,因为它们有图像——实际上更准确地说——它们是平面的,没有边框,并且上面有一个实际上是绘制按钮的图像(我不通过代码绘制它的原因是因为图像很复杂)。在某些机器上,当应用程序调整大小时,它们开始闪烁。 Form 设置为 DoubleBuffered true,我使用此函数在按钮上设置双缓冲区。

public static void SetDoubleBuffered(System.Windows.Forms.Control c)
{
if (System.Windows.Forms.SystemInformation.TerminalServerSession)
return;

System.Reflection.PropertyInfo aProp =
typeof(System.Windows.Forms.Control).GetProperty(
"DoubleBuffered",
System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Instance);

aProp.SetValue(c, true, null);
}

有什么建议吗?

最佳答案

当我遇到双缓冲问题时,这对我有很大帮助。代码有点旧,但仍然涵盖了基础知识。

http://www.codeproject.com/KB/graphics/DoubleBuffering.aspx

希望对您有所帮助。 :)

关于C#双缓冲按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7781402/

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