J'ai une très grande application winforms C# .net 2.0 qui a quelques problèmes de dessin.Dessin d'écran lent dans l'application Winforms .NET C#
Lorsque vous entrez dans différentes formes, vous pouvez voir les contrôles dessinés et même la barre de titre du formulaire en train d'être redimensionnée puis disparaître.
La forme de base dont tous les autres formulaires héritent a le code suivant dans son constructeur. Y compris la définition de DoubleBuffering à true. Les formulaires ont également un gradient d'arrière-plan, mais l'élimination de ces derniers ne fait aucune différence pour la vitesse.
Tous les contrôles et formulaires héritent des versions de base.
Que puis-je ajouter ou vérifier pour aider à la vitesse de dessin?
Code dans le OnPaint
if (this.b_UseBackgroundGradient)
{
Graphics graphics = e.Graphics;
Rectangle backgroundRectangle = this.ClientRectangle;
this.SuspendLayout();
if (backgroundRectangle.Width != 0 && backgroundRectangle.Height != 0)
{
using (Brush backgroundBrush = new LinearGradientBrush(backgroundRectangle, base.BackColor, this.BackGradiantColour, LinearGradientMode.ForwardDiagonal))
{
graphics.FillRectangle(backgroundBrush, backgroundRectangle);
}
}
this.ResumeLayout();
}
else
{
base.OnPaint(e);
}
Faites-vous quelque chose à l'intérieur de la méthode OnPaint? –
Essayez d'utiliser ce formulaire sur un poste de travail distant après cette modification. –