Улучшение производительности 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,

0 ответов

Другие вопросы по тегам