我在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);
}
答案 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()
}
}
});