解决方案 »

  1.   

    在窗口上添加Panel的方式就是
    new Panel()
    Position    //设置位置
    Size    //设置大小
    this.Controls.Add(panel);    //添加到窗体
    这三个步骤,如果你看过 *.Designer.cs应该会很了解。
    要实现你的功能,就需要在代码里对位置和大小进行控制了
      

  2.   


    private void BindDataForm()
            {
                for (int i = 0; i < 用户输入的数值; i++)
                {
                    Panel panel_name = new Panel();
                    panel_name.Name = "panelInfo" + i.ToString();
                    panel_name.TabIndex = 2;
                    panel_name.BackColor = Color.AliceBlue;
                    panel_name.Location = new Point(panel_name.Width * i, 5);
                    this.panel1.Controls.Add(panel_name);
                }
            }
    但这没能太到我的效果啊
      

  3.   


    没有这个,只能用TableLayoutPanel自己去调试并合并列
      

  4.   


           for (int i = 0; i < 3; i++)
                {
                    Panel panel_name = new Panel();
                    panel_name.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
                    panel_name.BackColor = Color.AliceBlue;
                    this.flowLayoutPanel1.Controls.Add(panel_name);
                }大小可以根据Winform的宽度计算
      

  5.   

    自己写一个算法,根据窗体的长宽和所需panel 的个数控制大小
      

  6.   

    你的这个行列是怎么确定的呢?
    比如:我输入一个 17,请问是几行几列呢?20 为什么是 4 行 5 列而不是 5 行 4 列或者 2 行 10 列呢?
    这个是 keypoint,至于怎么弄成格子,那是很 easy 的问题。
      

  7.   

    行和列没有确定呢?根据父窗体的大小和panel的数量来计算每个panel的大小,还要注意Dock属性。看效果像是SplitContainer和panel合用的
      

  8.   

    这个每行显示多少个Panel我们可以控制的,只要不太丑就好
      

  9.   


    你想当然了,根据 Form 的固定宽度,我可以放一行 10 个,也可以放一行 四五个,没人规定我 的 Panel 到底有多大。对不对?这就是问题。
    楼主说的只要不要太难看就行了,这个就是一个算法布局问题,但是这个布局跟 Form 大小没有半毛钱关系!