Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 执行乘法、文本框_C#_Winforms - Fatal编程技术网

C# 执行乘法、文本框

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

我有一个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 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();  
 }