Есть проект WinForms, на нем dataGridView и в конструкторе формы следующий код:
dataGridView1.RowCount = 36;
dataGridView1.ColumnCount = 30;
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
dataGridView1.Font = new Font(dataGridView1.Font, FontStyle.Bold);
Так же свойство грида Dock = Fill.
Вроде бы строк и столбцов всего ничего, но при плавном изменении размеров формы начинаются жуткие тормоза.
Так же в обработчике события KeyDown есть код, который при нажатии на пробел красит в разные цвета ячейку грида в зависимости от её содержимого:
if (e.KeyCode == Keys.Space)
{
char ch = Convert.ToChar(dataGridView1.Rows[currentRow].Cells[currentCol].Value);
if(ch == defaultChar)
dataGridView1.Rows[currentRow].Cells[currentCol].Style.BackColor = Color.GreenYellow;
else dataGridView1.Rows[currentRow].Cells[currentCol].Style.BackColor = Color.Coral;
}
И тут так же, при покраске ячейки появляется короткое, но заметное и критичное для моей задачи подвисание около 0,5 секунды(требуется сразу же с помощью клавиатуры переместиться на следующую ячейку). Если сделать таблицу размером 10х15, то лага почти нет, он еле заметен, но всё же. Приложение запускается на машине с i7-4790 3.6 Ггц.
Почему так тормозит dataGridView и можно ли как-то это исправить?