Улучшение производительности Tablelayoutpanel
Я использую tablelayoutpanel
в моем проекте WinForm он медленно реагирует на события. Я ссылался на эту ссылку, чтобы сделать tablelayoutpanel
сделать быстрее.
В моем коде все ячейки в tablelayoutpanel имеют одинаковый размер (100%), я добавил picturebox
в каждой ячейке и его свойство SizeMode растягивать. Количество ячеек всего 9, и когда я изменяю размер панели, это медленно.
Код, как показано ниже. Если я создаю 300 ячеек, это занимает 4 секунды, чтобы изменить размер.
Void change_tableLayout(int num) //num =9
{
CoTableLayoutPanel ctlp = gcnew CoTableLayoutPanel(); //inherited tablelayoutpanel as described in above link
global_ctlp.Cursor = System.Windows.Forms.Cursors.WaitCursor;
num = Math.Sqrt(num);
global_ctlp.Controls.Clear();
global_ctlp.RowStyles.Clear();
global_ctlp.ColumnCount = num;
global_ctlp.RowCount = num;
for(int i = 0; i < num; i++) //row cell
{
RowStyle rs = gcnew RowStyle(SizeType::Percent, 50);
global_ctlp.RowStyles.Add(rs);
for (int j = 0; j < num; j++) //column cell
{
global_ctlp.ColumnStyles.Add(gcnew ColumnStyle(SizeType.Percent, 50));
PictureBox pictureBox1 = gcnew PictureBox();
pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill;
pictureBox1.Image = Image.FromFile("image_path");
global_ctlp.Controls.Add(pictureBox1, i, j);
pictureBox1.Margin = System.Windows.Forms.Padding(0);
pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
}
}
global_ctlp.Cursor = System.Windows.Forms.Cursors.Default;
}
Может ли это быть улучшено дальше? Как мне сделать это быстрее? или есть ли лучший компонент, кроме tablelayoutpanel
,