Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自定义控件(C#)中的双缓冲子控件_C#_Winforms_Drawing_Doublebuffered - Fatal编程技术网

自定义控件(C#)中的双缓冲子控件

自定义控件(C#)中的双缓冲子控件,c#,winforms,drawing,doublebuffered,C#,Winforms,Drawing,Doublebuffered,我想双缓冲一个自定义控件,其中包含按钮。我尝试了各种方法来双重缓冲控制;设置样式、BufferedGraphicsContext和图形到位图。这些都适用于控件的自定义绘图,但没有一个可以处理将按钮绘制到后台缓冲区的操作。如何实现这一点?从技术上讲,如果它们是标准的.NET WinForms按钮,您就不需要这样做 按钮本身通过受保护的DoubleBuffered属性来控制。访问该类的唯一方法是从S.W.F.Button派生一个新类,并实现代码以在该类的实例上启用DoubleBuffered属性(我

我想双缓冲一个自定义控件,其中包含按钮。我尝试了各种方法来双重缓冲控制;设置样式、BufferedGraphicsContext和图形到位图。这些都适用于控件的自定义绘图,但没有一个可以处理将按钮绘制到后台缓冲区的操作。如何实现这一点?

从技术上讲,如果它们是标准的.NET WinForms按钮,您就不需要这样做

按钮本身通过受保护的DoubleBuffered属性来控制。访问该类的唯一方法是从S.W.F.Button派生一个新类,并实现代码以在该类的实例上启用DoubleBuffered属性(我可能会在构造函数中这样做)。最后,在表单上使用该新类的对象,而不是S.W.F.按钮

然而,我记得,按钮完全是从WinAPI中提取的;它们不是GDI+。因此,您不需要对其图形进行双重缓冲。也就是说,我不知道您的使用情况,也不知道您的应用程序显示了什么症状,所以我可能错了。:)

你可以考虑看看这本书。所有这些都是从那本书的信息中总结出来的。

另见:。