Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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# Windows窗体中的闪烁问题_C#_Windows_Winforms_User Controls_Flicker - Fatal编程技术网

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方法加载事件中调用的方法。请不要在此处重复答案。如果这对你有效,那么你的问题应该作为一个副本结束。