我已经生成了一些文本框,我希望用户在添加到表单后输入数据,然后我将其中的数据用于某些计算。 我该如何使用这些数据?
TextBox t3 = new TextBox();
t3.Top = 222 + ((addalternativebutton - 3) * 60);
t3.Left = 214;
t3.Width = 76;
t3.Height = 22;
t3.Name = "txtwaste" + addalternativebutton.ToString();
this.tabore.Controls.Add(t3);
ww[addalternativebutton] = Convert.ToDouble(t3.Text);
答案 0 :(得分:0)
正如我在评论中提到的,您需要保留动态创建的文本框实例。您可以使用通用字典,如果您需要处理分配给它们的名称,或者您可以使用通用列表。 以下解决方案我为您提供了使用通用列表。
首先需要的是一个保留文本框的列表。
public partial class Form1 : Form
{
private List<TextBox> textBoxes;
private int textBoxCount; //This is used to provide unique names to the
//textboxes and to track the number of dynamic textboxes.
public Form2()
{
InitializeComponent();
}
}
现在,在按钮的单击事件中,文本框被创建,定位并添加到列表以及Form.Controls。
private void button1_Click(object sender, EventArgs e)
{
textBoxCount += 1;
TextBox t3 = new TextBox();
t3.Top = 20 + (22 * textBoxCount); //You can put your own logic to set the Top of textbox.
t3.Left = 120;
t3.Width = 50;
t3.Height = 20;
t3.Name = "txtwaste" + textBoxCount; //You can use your own logic of creating new name.
this.Controls.Add(t3);
this.textBoxes.Add(t3);
}
现在,当您想要点击另一个按钮计算所有文本框的值之和时。
private void button2_Click(object sender, EventArgs e)
{
double totalValue = 0;
foreach (var textBox in textBoxes)
{
double currentValue;
if (double.TryParse(textBox.Text, out currentValue))
{
totalValue += currentValue;
}
}
// Displaying totalValue in a label.
lblTotalValue.Text = "Total Value : " + totalValue;
}
这可以帮助您解决问题。