При использовании Button-Paint-Event кнопка не обновляется на каждой итерации цикла for.Но форма или панель обновляются плавно с каждой итерацией.
Таким образом, при выполнении этого кода кнопка запускается с цветом по умолчанию, затем после завершения цикла for отображает последний цвет в цветах-Array.Он не обновляется при каждой итерации.
Мой вопрос: кто-то знает, почему кнопка не обновляется при каждой итерации, а другие элементы управления используют тот же код?
void Main()
{
Color[] colors = new Color[10]
{
Color.White, Color.Red, Color.Blue, Color.Green, Color.Black,
Color.Purple, Color.Brown, Color.Yellow, Color.Gray, Color.Lime
};
Button button = new Button();
button.FlatStyle = FlatStyle.Flat;
button.Paint += (sender, e) =>
{
for (int i = 0; i < 10; i++)
{
e.Graphics.FillRectangle(
new SolidBrush(colors[i]),
new RectangleF(0, 0, button.Width, button.Height));
Thread.Sleep(100);
Application.DoEvents();
}
};
Form form = new Form();
form.Controls.Add(button);
form.Show();
}