我正在创建一个具有以下目标的 Windows 窗体应用程序:
从用户那里获取一个产品列表,每个产品都有一个唯一的名称和一个类别(来自一个枚举列表)(然后做一些事情,但这与问题无关)。
这个想法是我想让用户通过在文本框中输入一个值来指定他们想要配置“n”个产品。我有文本框的事件处理程序调用一个将变量设置为此值 n 的方法。这个值“n”将用作循环计数器,或者你有什么 - 关键是它将创建要创建的框数的界限。
然后,我想在表单中添加(基于 n 动态)、n 个(文本框/组合框)对。如果没有空间在最后一个创建的下方添加另一个(文本框/组合框)对,它应该创建另一列。
n 是无界的,但实际上可能永远不会超过 20。无论如何,如果产品数量比这更多,我希望能够处理它。
组合框中的选项将从运行时传入的字符串列表中填充,但每个框、每个表单应用程序的实例都是一致的。
我试图输入一个模拟图像,但堆栈溢出不会让我获得一些声誉积分:(
我了解如何使用类似下面的代码来创建多个框,但它是我坚持的更好点。任何人都可以帮忙吗?
谢谢!
` private void Method1()
{
int boxes = Int32.Parse(NumProducts.Text);
for (int i = 0; i < boxes; i++)
{
TextBox tb = new TextBox();
tb.Location = new System.Drawing.Point(40, i * 20);
tb.Name = "TextBoxName" + i.ToString();
tb.Size = new System.Drawing.Size(184, 20);
tb.TabIndex = i + 2;
tb.Text = String.Empty;
panel1.Controls.Add(tb);
}
}
private void NumProducts_TextChanged(object sender, EventArgs e)
{
Method1();
}`