我有一个接受 aControl
并将生成的图像绘制到它的类。在我的应用程序代码中,我为此使用了一个Panel
控件——这似乎工作得很好,除了当图像被重绘时我在控件上得到了很多闪烁。我认为解决方案是在控件上启用双缓冲。我正在使用以下代码执行此操作:
System.Reflection.PropertyInfo aProp =
typeof(System.Windows.Forms.Control).GetProperty(
"DoubleBuffered",
System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Instance);
aProp.SetValue(drawControl, true, null);
添加此代码后,图像被绘制,然后立即替换为默认的灰色按钮背景颜色 - 就好像系统正在绘制我自己的内容。
我记得在某处看到了一个属性,它告诉系统永远不要绘制控件(这对我来说是完美的,因为我正在用内容填充整个控件),但现在我找不到它。是否有这样的属性,如果有,我该如何启用它?
我将 C# 与 .NET 框架 4.0 版一起使用。