我正试图创建一个计算器,这将填补3x 4表的文本框。三行中的每一行都将使用不同的变量进行计算。这将进行4次。
表单中的文本框包括:
textBox11、textBox21、textBox31、textBox41
textBox12、textBox22、textBox32、textBox42
textBox13、textBox23、textBox33、textBox43
我可以把基本上只有一栏的内容写满。
这个方法的作用是:
double var1 = Convert.ToDouble(tb_value1.Text, CultureInfo.InvariantCulture);
double var2 = Convert.ToDouble(tb_value2.Text, CultureInfo.InvariantCulture);
double var3 = Convert.ToDouble(tb_value3.Text, CultureInfo.InvariantCulture);
int WP = 1;
var S1 = Math.Pow((var2 - var1) * WP, 2);
var S2 = Math.Pow(4 + var3, 2);
var S3 = Math.Pow(var1, 2);
var Calc1 = (S1 * (var2 / 3));
var Calc2 = (S1 * S3) / WP;
var Calc3 = var3 + var1 * (S2 / WP);
textBox11.Text = Calc1.ToString(CultureInfo.CreateSpecificCulture("en-GB"));
textBox12.Text = Calc2.ToString(CultureInfo.CreateSpecificCulture("en-GB"));
textBox13.Text = Calc3.ToString(CultureInfo.CreateSpecificCulture("en-GB"));
字符串
该代码成功地计算了一列三个不同的结果。WP
用于变量S1
-S3
和Calc1
-Calc3
。
问题是我如何让它在for
循环中工作,其中WP
是循环的变量。
就像这样
double var1 = Convert.ToDouble(tb_value1.Text, CultureInfo.InvariantCulture);
double var2 = Convert.ToDouble(tb_value2.Text, CultureInfo.InvariantCulture);
double var3 = Convert.ToDouble(tb_value3.Text, CultureInfo.InvariantCulture);
for ( WP = 1; WP <= 4; WP++)
{
var S1 = Math.Pow((var2 - var1) * WP, 2);
var S2 = Math.Pow(4 + var3, 2);
var S3 = Math.Pow(var1, 2);
var Calc1 = (S1 * (var2 / 3));
var Calc2 = (S1 * S3) / WP;
var Calc3 = var3 + var1 * (S2 / WP);
textBox11.Text = Calc1.ToString(CultureInfo.CreateSpecificCulture("en-GB"));
textBox12.Text = Calc2.ToString(CultureInfo.CreateSpecificCulture("en-GB"));
textBox13.Text = Calc3.ToString(CultureInfo.CreateSpecificCulture("en-GB"));
}
型
使用for
循环,假设循环4次,为四(4)列中的每一列提供三(3)个结果。
问题是我不知道如何以最有效的方式做到这一点。
我的第一次尝试是尝试将“textBox”之后的第一个数字作为变量,如下所示:
String.Format("textBox{0}1", WP)
型
但很可能我做错了什么。
1条答案
按热度按时间lp0sw83n1#
首先,您需要将单个
TextBox
变量转换为一个或多个可以索引的数组。字符串
现在,您可以重写代码,将结果输出到网格的正确行/列中:
型
您的公式不需要制作输入或计算的数组。