Проблемы с анимацией. С#

Столкнулся с крайне не приятной проблемой. У меня есть "Раздвигающийся список" т.е подобие слайдера. Слайдер состоит из panel'и и button. При нажатии на button, активируется таймер, который выполняет следующий код:

private void timer1_Tick(object sender, EventArgs e)
        {
            if (Click_Main == true)
            {
                panel_y += 4;
                panel2.Size = new Size(panel2.Size.Height, panel_y);
                if (panel_y > 154)
                {
                   timer1.Enabled = false;
                }
            }
        }

При выполнении этого кода, panel увеличивается в размере и появляются кнопки. По идеи должно быть всё хорошо, но нет. При исполнении кода таймера, т.е когда panel увеличивается, кнопки в разных местах могут принять BackColor panel'и на маленький промежуток времени, но часто.

Пример проблемы: Проблема

А должно быть так:

Должно быть

Проведя эксперименты, я нашёл зависимость. Чем больше interval у таймера, чем меньше таких артефактов. Подскажите, как решить такую проблему?
P.S проведя ещё один эксперимент с двумя panel'ями, такой проблемы не наблюдалось.

P.S 2 заменив button's, и поставив изображение на panel, оно начало сильно мерцать.


Ответы (0 шт):