[英]Binding Data into a dynamically created textboxes in winforms using c#
我最初在groupbox的mainForm上有3个文本框。 当我在3个文本框中的任何一个上按Enter时,它会动态创建另外3个文本框,依此类推。.用于创建动态文本框的代码是这样的:
private void createTextBoxes(GroupBox groupbox)
{
x = 6;
y += 40;
x1 = 223;
y1 += 40;
x2 = 440;
y2 += 40;
TextBox tbparticular = new TextBox();
tbparticular.KeyDown += new KeyEventHandler(textBoxParticular_KeyDown);
TextBox tbQty = new TextBox();
tbQty.KeyDown += new KeyEventHandler(textBoxQty_KeyDown);
TextBox tbRate = new TextBox();
tbRate.KeyDown += new KeyEventHandler(textBoxRates_KeyDown);
tbparticular.Size = new Size(207, 20);
tbQty.Size = new Size(207, 20);
tbRate.Size = new Size(207, 20);
tbparticular.Location = new Point(x, y);
tbQty.Location = new Point(x1, y1);
tbRate.Location = new Point(x2, y2);
groupbox.Controls.Add(tbparticular);
groupbox.Controls.Add(tbQty);
groupbox.Controls.Add(tbRate);
groupbox.Height += 20;
//Particularpanel.Height += 20;
//Form1.height
}
private void textBoxParticular_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
createTextBoxes(this.groupBoxProperties);
}
}
private void textBoxRates_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
createTextBoxes(this.groupBoxProperties);
}
}
private void textBoxQty_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
createTextBoxes(this.groupBoxProperties);
}
}
现在,当创建文本框时,我想在表中插入一条记录。 我的问题是每次如何在动态创建的texbox上执行插入操作。 有什么建议么?
如果我已正确理解该问题,则无法访问该方法之外的元素。
您应该使用一些全局数组,例如
TextBox[] tbparticular = ...
因此,您可以使用此元素来完成所有所需的操作。
tbparticular[34].Text = "some text";
您可以读取数据库中的所有数据,例如
foreach(TextBox t in tbparticular)
{
AddToDB(t.text)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.