Создавайте флажки во время выполнения и размещайте их в форме наилучшим образом - PullRequest
0 голосов
/ 10 февраля 2020

Мне нужно создать N флажков в Winform, но затем мне нужно разместить их внутри формы наилучшим образом, в зависимости от размера формы.

Вот код

  int x = 0;

  foreach (int i in Enumerable.Range(0, 5))
  {
      foreach (int j in Enumerable.Range(0, 4))
      {                   
          CheckBox b = new CheckBox();
          b.Appearance = Appearance.Button;
          b.Size = new System.Drawing.Size(80, 30);
          b.Location = new Point(i * 80, j * 30);
          b.Text = x.ToString();
          b.CheckedChanged += B_CheckedChanged;
          b.Tag = x.ToString("#00");

          this.Controls.Add(b);

          x++;
      }
   }

Этот фрагмент кода создает 20 флажков в 5 столбцах и 4 строках, но мне нужно теперь, когда пользователь вводит 34, чтобы каким-то образом найти лучший способ показать эти флажки. Скажем, может быть в 5 строк, и каждая строка содержит 8 флажков, кроме последнего, который будет содержать последние 2 флажка. Каков наилучший подход к достижению sh этого?

1 Ответ

1 голос
/ 10 февраля 2020

Вы можете использовать поместить все флажки в элемент управления flowLayoutPanel, Установить элемент управления Flowlayoutpanel, чтобы Flowlayoutpanel мог автоматически изменять размер при изменении размера формы.

...