Gör så här: Minska grafikflimmer med dubbel buffring för formulär och kontroller

Dubbel buffring använder en minnesbuffert för att lösa de flimmerproblem som är associerade med flera färgåtgärder. När dubbel buffring är aktiverat återges först alla färgåtgärder till en minnesbuffert i stället för ritytan på skärmen. När alla färgåtgärder har slutförts kopieras minnesbufferten direkt till ritytan som är associerad med den. Eftersom endast en grafikåtgärd utförs på skärmen elimineras bildflimmer som är associerad med komplexa målningsåtgärder. För de flesta program ger standard dubbel buffring som tillhandahålls av .NET Framework bästa resultat. Standardkontroller för Windows Forms är dubbelbuffertade som standard. Du kan aktivera standard dubbel buffring i dina formulär och författade kontroller på två sätt. Du kan antingen ange egenskapen DoubleBuffered till trueeller anropa metoden SetStyle för att ange flaggan OptimizedDoubleBuffer till true. Båda metoderna aktiverar standard dubbel buffring för formuläret eller kontrollen och ger flimmerfri grafikrendering. Att anropa metoden SetStyle rekommenderas endast för anpassade kontroller som du har skrivit all återgivningskod för.

För mer avancerade scenarier med dubbel buffring, till exempel animering eller avancerad minneshantering, kan du implementera din egen logik för dubbel buffring. Mer information finns i Så här: Hantera buffrad grafik manuellt.

Så här minskar du flimmer

  • Ange egenskapen DoubleBuffered till true.

    DoubleBuffered = true;
    
    DoubleBuffered = True
    
    

-eller-

  • Anropa metoden SetStyle för att ange flaggan OptimizedDoubleBuffer till true.

    SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
    
    SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
    
    

Se även