C#窗体应用程序,如何在窗体上高效地创建动态面板?

3
我想在我的窗体应用程序中动态创建几个面板。每个面板都由3个标签、一个文本框和一个按钮组成。现在我知道我可以一次性硬编码这些内容,通过每次声明变量来实现,但这需要大量的编码,显然不是很有效率。
所以我的问题是:是否有一种方法可以动态地创建预定义面板,每次创建面板时都会有预定义的布局设置。因此,每次只需添加面板、其位置和大小,面板内的所有内容(如标签、文本框和按钮)已经与面板本身关联了位置。我真的必须为此创建一个类吗?
感谢您的阅读和耐心等待。

1
您可以创建一个用户控件,然后将其动态添加到您的表单中。您可能也想查看这个链接:http://www.akadia.com/services/dotnet_user_controls.html - Habib
3个回答

2

2
创建一个用户控件,然后在上面放置您喜欢的内容(标签)。公开该控件的公共方法/属性,以便您可以控制其内容。您可以在表单上放置尽可能多的这些控件,它们将全部具有相同的外观和行为。

2

这里有一个你可以尝试的例子...

for (int i = 1; i < 5; i++)
{
    var panel1 = new Panel() { Size = new Size(90, 80), Location = new Point(10, i * 100), BorderStyle = BorderStyle.FixedSingle };
    panel1.Controls.Add(new Label() { Text = i.ToString(), Location = new Point(10, 20) });
    panel1.Controls.Add(new Label() { Text = i.ToString(), Location = new Point(10, 40) });
    panel1.Controls.Add(new Label() { Text = i.ToString(), Location = new Point(10, 60) });
    Controls.Add(panel1);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接