在Windows formsApplication中生成标签控件时出现问题

时间:2010-02-10 06:31:17

标签: c# winforms layout

我在Windows窗体应用程序中动态创建了图片框...它运行良好... 现在我必须动态生成标签框,标签框将显示在每个图片框的底部,并且必须显示相应的图片框名称... 我该怎么做?给我解决这个问题......

提前致谢... 我的编码就在这里..

           int Left = this.Left+200;
           int Top = this.Top;

           for(int i=0;i<Num_Picbox;i++)
           {
           shapes[i] = new PictureBox();
           shapes[i].Location = new Point(Left,Top);
           Left += 200;
           Top += i + 0;

           shapes[i].Size = new Size(160,160);
           shapes[i].BackColor = Color.Black;
           shapes[i].Visible = true;
           shapes[i].Name = i.ToString();
           shapes[i].BorderStyle = BorderStyle.FixedSingle;

           flowLayoutPanel1.Controls.Add(shapes[i]);
           flowLayoutPanel1.WrapContents = true;
           shapes[i].Click += new EventHandler(PictureBox_Click);
          }

2 个答案:

答案 0 :(得分:2)

我认为最好的方法是创建一个带有picturebox的自定义用户控件,并按照您想要的方式布置标签,然后将它们动态添加到flowlayoutpanel。使形状[]成为自定义控件类型的数组。

答案 1 :(得分:1)

为每张照片创建一个面板,其中包含停靠在Bottom的标签,并且您的照片框停靠在Fill。将此面板添加到流布局面板而不是图片框。确保首先将图片框添加到面板的控件集合中,以确保对接按预期工作。

shapes[i].Dock = DockStyle.Fill;
flowLayoutPanel1.Controls.Add(
    new Panel {
        Controls = {
            shapes[i],
            new Label {
                Dock = DockStyle.Bottom,
                Text = i.ToString()
            }
        }
    });