我正在尝试编写代码以创建动态文本框。
我有Function类,并在我的程序中有一个名为ProductForm.cs
我想做的是在我的GetSpecs
和Function.cs
内部使用名为GetSpecs
的函数读取一些数据我希望在另一个类中调用函数并将数据发送到我的ProductForm.cs
类下的其他功能。
我最后得到的是空白表格。
我的GetSpecs
函数的一部分:
private String GetSpecs(String webData)
{
......
ProductForm form2 = new ProductForm();
form2.CreateTextBox(n);
}
ProductForm.cs
public void CreateTextBox(int i)
{
ProductForm form2 = new ProductForm();
form2.Visible = true;
form2.Activate();
int x = 10;
int y = 10;
int width = 100;
int height = 20;
for (int n = 0; n < i; n++)
{
for (int row = 0; row < 4; row++)
{
String name = "txtBox_" + row.ToString();
TextBox tb = new TextBox();
tb.Name = name;
tb.Location = new Point(x, y);
tb.Height = height;
tb.Width = width + row * 2;
x += 25 + row * 2;
this.Controls.Add(tb);
}
y += 25;
}
}
我得到一个空白的ProductForm形式。文本框未创建或我看不到它们。
如果我把文本框放在
中private void ProductForm_Load(object sender, EventArgs e)
我可以看到文本框。
答案 0 :(得分:3)
您正在创建一个全新的ProductForm
实例(在form2
变量中),然后将控件添加到this
(从未显示过)。
答案 1 :(得分:2)
您要将控件添加到当前表单:this.Controls.Add(tb);
,您需要将它们添加到其他表单:
form2.Controls.Add(tb);