Я работаю над приложением WinForms на C #. Изначально у меня есть панель макетов таблиц, в которую я заполняю динамически созданные кнопки, по одной для каждой ячейки. Это работает хорошо и довольно быстро. Во время выполнения программы я должен очистить эту панель раскладки таблиц и снова заполнить ее, в основном с тем же дисплеем, но с большим количеством кнопок (в два раза больше, чем в исходной таблице). Проблема в том, что этот процесс занимает много времени (более 10 секунд). Я делаю что-то неправильно? Это код:
buttonTable.Controls.Clear();
buttonTable.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single;
buttonTable.RowCount = GetNoOfLines();
buttonTable.ColumnCount = GetNoOfLines();
for (int z = 1; z <= GetNoOfLines(); z++)
{
buttonTable.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 25));
buttonTable.RowStyles.Add(new RowStyle(SizeType.Absolute, 25));
}
for (int i = 1; i <= GetNoOfLines(); i++)
{
for (int j = 1; j <= GetNoOfLines(); j++)
{
FieldButton tempButton = new FieldButton(i, j, GetNoOfLines());
tempButton.MouseDown += new MouseEventHandler(OnFieldButtonClicked);
buttonTable.Controls.Add(tempButton, j - 1, i - 1);
}
}
Примечание: FieldButton
- это класс, производный от Button
, к которому я добавил два int's
, ничего особенного в этом нет. Также кнопки правильно добавлены в таблицу. Спасибо!