Пример #1
0
        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();
        }
Пример #2
0
 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);
     }
 }