public void FillWaitInfoListIntoTabelLayoutPanel(TableLayoutPanel layoutPanel, List <WaitInfoV1d0> waitInfoList) { int waitInfoCount = waitInfoList.Count; layoutPanel.GetType().GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(layoutPanel, true, null); layoutPanel.SuspendLayout(); if (layoutPanel.RowCount != waitInfoCount) { layoutPanel.Height = waitInfoCount * 100; layoutPanel.RowCount = waitInfoCount; layoutPanel.RowStyles.Clear(); for (int i = 0; i < waitInfoCount; i++) { if (i < (waitInfoCount - 1)) { layoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 100)); } else { layoutPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 100)); } } } layoutPanel.Controls.Clear(); for (int i = 0; i < waitInfoCount; i++) { QueueInfoDisplayBarV1d0 displayBar = new QueueInfoDisplayBarV1d0(waitInfoList[i]); displayBar.Dock = DockStyle.Fill; layoutPanel.Controls.Add(displayBar, 1, i); } layoutPanel.ResumeLayout(); }
public void FillPanelControls(Control.ControlCollection panelControls, int barCount) { try { int controlsCount = panelControls.Count; if (barCount > controlsCount) { for (int i = controlsCount; i < barCount; i++) { var displayBar = new QueueInfoDisplayBarV1d0(); displayBar.Location = new Point(5, 5 + 102 * i); displayBar.tableLayoutPanel1.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single; displayBar.tableLayoutPanel2.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single; displayBar.DisplayIndex = i; panelControls.Add(displayBar); } } else if (barCount < controlsCount) { List <Control> deleteList = new List <Control>(); foreach (Control item in panelControls) { if ((item is QueueInfoDisplayBarV1d0) && ((item as QueueInfoDisplayBarV1d0).DisplayIndex >= barCount)) { deleteList.Add(item); } } foreach (var item in deleteList) { panelControls.Remove(item); } } } catch (Exception ex) { SimpleLoger.Instance.Error(ex); } }