我想在我的窗口窗体应用程序中动态创建一些面板。每个面板将包含 3 个标签、一个文本框和一个按钮。现在我知道我可以通过每次声明每个变量来一次硬编码这一切,但这需要大量编码,而且显然根本没有效率。所以我的问题是:有没有一种方法可以动态地创建预定义面板,每次创建面板时都会有预定义的布局设置。所以我需要做的就是添加一个面板,每次都添加它的位置和大小,并且面板内的所有内容(如标签、文本框和按钮)都已经设置好了,它们的位置与面板本身相关联。我真的必须为此创建一个类吗?
提前感谢您阅读并抽出宝贵时间。
我想在我的窗口窗体应用程序中动态创建一些面板。每个面板将包含 3 个标签、一个文本框和一个按钮。现在我知道我可以通过每次声明每个变量来一次硬编码这一切,但这需要大量编码,而且显然根本没有效率。所以我的问题是:有没有一种方法可以动态地创建预定义面板,每次创建面板时都会有预定义的布局设置。所以我需要做的就是添加一个面板,每次都添加它的位置和大小,并且面板内的所有内容(如标签、文本框和按钮)都已经设置好了,它们的位置与面板本身相关联。我真的必须为此创建一个类吗?
提前感谢您阅读并抽出宝贵时间。
创建 Windows 窗体控件或用户控件,请参阅http://msdn.microsoft.com/en-us/library/6hws6h2t.aspx
创建一个用户控件,并在其上放置您喜欢的任何内容(您的标签)。公开该控件的公共方法/属性,以便您可以控制它的内容。将尽可能多的那些放在表单上,它们的外观和行为都相同。
这是一个你可以玩的例子......
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);
}