C# Windows窗体中的闪烁问题
我的控制装置闪烁有问题。我有拖放操作,当拖动控件时,它会闪烁。我怎样才能解决它?我试过这个C# Windows窗体中的闪烁问题,c#,windows,winforms,user-controls,flicker,C#,Windows,Winforms,User Controls,Flicker,我的控制装置闪烁有问题。我有拖放操作,当拖动控件时,它会闪烁。我怎样才能解决它?我试过这个 public Form1() { InitializeComponent(); . . . this.DoubleBuffered = true; } 但对我不起作用。我怎样才能修好它 public static void SetDoubleBuffered(System.Windows.Forms.Con
public Form1()
{
InitializeComponent();
.
.
.
this.DoubleBuffered = true;
}
但对我不起作用。我怎样才能修好它
public static void SetDoubleBuffered(System.Windows.Forms.Control c)
{
//Taxes: Remote Desktop Connection and painting
//http://blogs.msdn.com/oldnewthing/archive/2006/01/03/508694.aspx
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);
}
这种方法很有帮助
是从这里带走的
什么样的控件在闪烁?您包含了一个用户控件标记。您的双缓冲设置仅适用于窗体,而不适用于控件。我的控件为面板。请参阅谢谢。我看到了这个问题的答案,现在是一个问题,什么是SetDoubleBuffered?这是一个事件还是仅仅是一种方法?如果方法必须在哪里调用它?它是您在窗体的构造函数或OnLoad方法加载事件中调用的方法。请不要在此处重复答案。如果这对你有效,那么你的问题应该作为一个副本结束。