У меня есть растущий прямоугольник, нарисованный поверх TableLayoutPanel, но когда он растет, он вызывает ужасное мерцание даже при использовании Double Buffer.Growing Rectangle
Я использую e.Graphics.FillRectangle и глобальную переменную, которая увеличивает размер прямоугольника. Я настроил таймер, чтобы он увеличивался каждые 1/10 секунды на 1 пиксель. Почему это мерцает так много, и как я могу остановить мерцание?
int grow = 100;
private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.FillRectangle(Brushes.Red, (tableLayoutPanel1.Width-grow)/2, (tableLayoutPanel1.Height-grow)/2, grow,grow);
}
private void timer1_Tick(object sender, EventArgs e)
{
grow += 10;
tableLayoutPanel1.Refresh();
}
Для того, чтобы исключить все другие возможности, я удалил все из моей программы и начал с нуля только с растущим прямоугольником и он по-прежнему создает эту ужасную вспышку.
могли бы вы предоставить код? Установка DoubleBuffer истина не помогает всегда. –
Несомненно, я постараюсь упростить код, поэтому вы не получите прицепной повсюду, думая, что проблема находится где-то в другом месте. – CodeCamper
Nikola добавил код, просто создайте Timer и TableLayoutPanel и введите код в новый проект, и вы увидите мерцание. – CodeCamper