У меня есть фоновое изображение, хранящееся в базе данных, поэтому вместо установки свойства BackgroundImage формы я обрабатываю событие OnPaint, чтобы нарисовать изображение на фоне для каждой формы. Проблема заключается в том, что каждый элемент управления в форме аннулирует родительский элемент управления - форму, поэтому OnPaint срабатывает несколько раз (12x). Даже если изображение находится в памяти, форма быстро мигает. Мне нужно избавиться от этого эффекта. Я не могу найти способ определить, какой элемент управления является последним, что вызывает перерисовку родительской формы, поэтому я могу применить фон только один раз. Есть идеи?
protected override void OnPaint(PaintEventArgs e)
{
if (Program.AppManager.AppBackgroundImage != null && !this.EH_BackImageNotApplicable)
{
e.Graphics.DrawImage(Program.AppManager.AppBackgroundImage, this.ClientRectangle);
}
}