在运行时创建复选框并以最佳方式将它们适合表单

Create checkboxes at runtime and fit them on form on the best possible way

我需要在 Winform 上创建 N 个复选框,然后我需要根据表单大小以最佳方式将它们放入表单中。

这是代码

  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++;
      }
   }

这段代码在 5 列和 4 行中创建了 20 个复选框,但我现在需要在用户输入 34 时以某种方式找到显示这些复选框的最佳方式。假设可能有 5 行,并且每行包含 8 个复选框,但最后一行将包含最后 2 个复选框。实现该目标的最佳方法是什么?

您可以使用将所有复选框放在 flowLayoutPanel 控件中,设置 flowlayoutpanel 控件锚点,以便 flowlayoutpanel 可以在表单大小更改时自动更改大小。