[英]Data from dynamically added parsed textboxes
我正在制作一个简单的计算器,以免自己在工作时必须在基本计算器上累加一堆发票总额(因为我们使用纸质发票)。 我现在只是获得基本功能,我拥有的功能之一是添加额外的文本框,然后尝试将文本框中的所有值添加到小计中。 我遇到的问题(我认为)是在编译程序之前,编译器需要具有文本框ID。 我还要为草率的变量名道歉,直到4AM为止,并且直到我刚使用任何变量时,我都尝试了我可能会想到的所有事情。 我已经尝试了所有迭代(如您所见,以do while语句结束)。
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
int partboxes = 3;
int lastY = 83;
public Form1()
{
InitializeComponent();
}
private void buttonFinal_Click(object sender, EventArgs e)
{
AddParts();
}
public double AddParts()
{
int i = 1;
double megavalue = 0;
do
{
double totalsum = double.Parse(("partBox" + i).Text);
megavalue = totalsum + megavalue;
i = i + 1;
} while (i < partboxes);
string supervalue = megavalue.ToString();
lblPartsTotal.Text = supervalue;
return megavalue;
}
private void button1_Click(object sender, EventArgs e)
{
TextBox partBox = new TextBox();
partBox.Name = "partBox" + partboxes++;
partBox.Location = new System.Drawing.Point(12, lastY + 26);
partBox.Size = new System.Drawing.Size(100, 20);
// Add the textbox control to the form's control collection
this.Controls.Add(partBox);
lastY = lastY + 26;
partboxes = partboxes++;
}
}
}
您可以从Controls
属性中按名称获取文本框
var tb = (TextBox)Controls["partBox" + i];
i
是文本框号码。
索引器返回一个Control
。 但是,由于每个控件都具有Text
属性,因此可以在不进行强制转换的情况下使用它。
double totalsum = double.Parse(Controls["partBox" + i].Text);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.