我正在制作一个简单的计算器,以免自己在工作时不得不在基本计算器上累加一堆发票总额(因为我们使用纸质发票)。我现在只是获得基本功能,我拥有的功能之一是添加额外的文本框,然后尝试将文本框中的所有值添加到小计中。我遇到的问题(我认为)是在编译程序之前,编译器需要具有文本框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++;
}
}
}
答案 0 :(得分:0)
您可以通过{p>从Controls
属性中按名称获取文本框
var tb = (TextBox)Controls["partBox" + i];
其中i
是文本框编号。
索引器返回一个Control
。但是,由于每个控件都有一个Text
属性,因此您可以使用它而无需强制转换。
double totalsum = double.Parse(Controls["partBox" + i].Text);