C# 执行乘法、文本框
我有一个winform,它几乎没有组合框、文本框等…所以我想通过单击btnAdd将txtTotal中的txtStack的值相乘,但每次单击btnAdd时,我也想将结果相乘C# 执行乘法、文本框,c#,winforms,C#,Winforms,我有一个winform,它几乎没有组合框、文本框等…所以我想通过单击btnAdd将txtTotal中的txtStack的值相乘,但每次单击btnAdd时,我也想将结果相乘 //For example: //click-1, txtStake = 2, txtTotal = 2; //click-2, txtStake = 2, txtTotal = 4; //click-3, txtStake = 3, txtTotal = 12; //click-3, txtStake = 4.5
//For example:
//click-1, txtStake = 2, txtTotal = 2;
//click-2, txtStake = 2, txtTotal = 4;
//click-3, txtStake = 3, txtTotal = 12;
//click-3, txtStake = 4.5 txtTotal = 54; Ok? How to do that? Thanks.
--------------------------------------------------------------------
class Multy
{
public decimal Stake;
public Multy()
{}
}
private List<Multy> matches = new List<Multy>();
private void btnAdd_Click(object sender, EventArgs e)
{
matches = new List<Multy>();
Multy match = new Multy();
match.Stake = decimal.Parse(txtStake.Text);
matches.Add(match);
decimal l_Stake;
string strStake;
string strOutputLine;
foreach (Multy m in matches)
{
l_Stake = m.Stake;
strStake = l_Stake.ToString();
}
txtTotal.text = //code?
}
//例如:
//单击-1,txtStack=2,txtTotal=2;
//单击-2,txtStack=2,txtTotal=4;
//单击-3,txtStack=3,txtTotal=12;
//点击-3,txtStack=4.5 txtTotal=54;好啊怎么做?谢谢
--------------------------------------------------------------------
多级
{
公众持股;
公共部门
{}
}
私有列表匹配项=新列表();
私有void btnAdd_单击(对象发送者,事件参数e)
{
匹配项=新列表();
Multy match=新Multy();
match.stack=decimal.Parse(txtstack.Text);
匹配。添加(匹配);
十进制l_桩;
字符串字符串;
字符串strOutputLine;
foreach(比赛中有多个m)
{
l_桩=m桩;
strStake=l_stack.ToString();
}
txtTotal.text=//代码?
}
我真的不明白为什么要在列表中添加一个元素,然后使用foreach。。。如果要将txtstage
值与当前值txtotal
相乘,只需执行以下操作:
decimal result,value;
if(decimal.TryParse(txtStake.Text,out result)
&& decimal.TryParse(txtTotal.Text,out value))
txtTotal.Text = (result * value).ToString();
else if(decimal.TryParse(txtStake.Text,out result))
txtTotal.Text = result.ToString();
另外,您的
Multy
类是完全没有意义的,您可以使用List
您基本上要求这样做(没有错误处理,请随意改进):
但是代码中有很多东西<代码>多个<代码>列表<代码>foreach 您可能想要这样的东西:
private List<Multy> matches = new List<Multy>();
private void btnAdd_Click(object sender, EventArgs e)
{
// do NOT create a new 'matches' list, use the existing one
Multy match = new Multy();
match.Stake = decimal.Parse(txtStake.Text);
// you should use "TryParse" here, what if the user entered "A"?
matches.Add(match);
decimal runningTotal = 1m; // base value
foreach (Multy m in matches)
{
runningTotal = runningTotal * m.Stake;
}
txtTotal.text = runningTotal.ToString();
}
private List matches=new List();
私有void btnAdd_单击(对象发送者,事件参数e)
{
//不要创建新的“匹配项”列表,请使用现有列表
Multy match=新Multy();
match.stack=decimal.Parse(txtstack.Text);
//您应该在这里使用“TryParse”,如果用户输入了“A”怎么办?
匹配。添加(匹配);
十进制runningTotal=1m;//基值
foreach(比赛中有多个m)
{
runningTotal=runningTotal*m.桩;
}
txtTotal.text=runningTotal.ToString();
}
每次单击都会创建一个新的(空)匹配列表。那可能不是你想要的。
private List<Multy> matches = new List<Multy>();
private void btnAdd_Click(object sender, EventArgs e)
{
// do NOT create a new 'matches' list, use the existing one
Multy match = new Multy();
match.Stake = decimal.Parse(txtStake.Text);
// you should use "TryParse" here, what if the user entered "A"?
matches.Add(match);
decimal runningTotal = 1m; // base value
foreach (Multy m in matches)
{
runningTotal = runningTotal * m.Stake;
}
txtTotal.text = runningTotal.ToString();
}