TableLayoutPanel не показывает все данные - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть панель макета таблицы. Внутри каждого я создаю Panel для вставки двух разных элементов управления в каждую ячейку.

Я хочу заполнить TableLayoutPanel всеми своими данными, в этом случае у меня 16 должно быть 16 разных ячеек. Поэтому я пытаюсь:

   private void AddRow(IList<DeliveryBreakdownGetViewModel> rModel)
        {
            tpnlDeliveryBreakdown.RowCount = rModel.Count / 4; //rModel count = 16
            tpnlDeliveryBreakdown.ColumnCount = 4;


            var row = 0;
            var column = 0;
            var fullRow = 1;
            for (int i = 0; i < rModel.Count; i++)
            {
                var panel = new Panel();
                Labels.Add(rModel[i].DesignGroupName);
                var label = new Label
                {
                    AutoSize = true,
                    Name = "label" + Labels.Count,
                    Text = rModel[i].DesignGroupName,
                    Location = new Point(12, YPos)
                };
                this.Controls.Add(label);
                tpnlDeliveryBreakdown.Controls.Add(panel, column, row);

                panel.Controls.Add(label);
                DeliveryBreakdownLabelsModel.Add(label);


                var numericUpDown = new NumericUpDown
                {
                    Name = "numericUpDown" + Labels.Count,
                    Maximum = decimal.MaxValue,
                    Minimum = decimal.MinValue,
                    Value = Decimal.Round(rModel[i].ContractedAmount, 2),
                    Location = new Point(12, YPos),
                    Size = new Size(60, 19),
                    DecimalPlaces = 2,

                    Tag = rModel[i].DesignGroupId
                };
                this.Controls.Add(numericUpDown);

                panel.Controls.Add(numericUpDown);
                DeliveryBreakdownNumericUpDownModel.Add(numericUpDown);

                if (fullRow % 4 == 0)
                {
                    row++;
                }

                fullRow++;
                if(column == 4)
                {
                    column = 0;
                }
                else
                {
                    column++;
                }

            }
        }

Но он показывает только 2 столбца и 7 ячеек:

enter image description here

Почему не отображаются все ячейки и он показывает только 2 столбца вместо 4. С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...