J'essaie de créer mon propre contrôle personnalisé pour une application Windows Forms en C# .Net. Actuellement, je peins des rectangles et d'autres éléments graphiques en utilisant l'événement paint. Lorsque je redimensionne maintenant le formulaire d'application en fonction de la taille du bureau, tous les éléments sont repeints (ce qui est exactement le comportement dont j'ai besoin), mais les anciens sont affichés en arrière-plan.C# - efface la surface lors du redimensionnement
Voici ce que je fais maintenant:
Pen penDefaultBorder = new Pen(Color.Wheat, 1);
int margin = 5;
private void CustomControl_Paint(object sender, PaintEventArgs e) {
CustomControl calendar = (CustomControl)sender;
Graphics graphics = e.Graphics;
graphics.Clear(Color.WhiteSmoke);
graphics.DrawRectangle(penDefaultBorder, margin, margin, calendar.Width - margin * 2, calendar.Height - margin * 2);
//...
}
Ni le graphics.Clear, ni l'ajout d'un graphics.FillRectangle (...) se cacheront l'ancien rectangle de la surface.
Des idées? Merci à tous.
Cela fonctionnera; c'est un peu une approche de fusil de chasse, mais cela fonctionnera. Je préfère toujours rendre le tampon uniquement lorsque des modifications sont requises et copier les régions demandées dans OnPaint. – overslacked
Hmm - c'était facile ;-) Merci pour votre aide, maintenant le redimensionnement fonctionne comme prévu. – dhh