WinForm C#列表框,单击按钮,文本框。项目总和

时间:2014-11-26 21:33:04

标签: c# winforms

您好我正在尝试创建一个程序,为用户提供一个包含项目及其各自价格的列表框。当用户选择项目并单击“添加到订单”按钮时,它会将该项目添加到订单摘要列表框中,并将该项目的价格添加到小计文本框中。我有几乎完全功能,但我的问题是,我不能得到小计加起来。我的意思是当我在摘要列表框中添加一个项目时,它会在小计文本框中显示价格,但是当我将第二个项目添加到摘要列表框时,它不会添加到小计文本框中的先前价格而是它只需用第二项的价格替换第一项的价格。如何让他们在小计文本框中添加并显示它们?

以下是我的代码现在在btn click事件处理程序下的显示方式:

double subTotal = 0.00;

if (lstBoxItemSelection.Text =="Item 1 = 1.00")
    { 
         LstBoxSummary.Items.Add("Item 1 = 1.00")
         subTotal += 1.00;
     }

if (lstBoxItemSelection.Text =="Item 2 = 2.00"  )
     { 
         LstBoxSummary.Items.Add("Item 2 = 2.00")
         subTotal += 2.00;
     }

this.txtBoxSubTotal.Text = subtotal.ToString();

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我认为你的subTotal变量是一个局部变量。这意味着每次单击按钮时都会重置该值。 试着把它从方法中删除:

private double subTotal = 0.0;
private void btn_click(Object sender,EventArgs e)
{
   if (lstBoxItemSelection.Text =="Item 1 = 1.00")
   { 
        LstBoxSummary.Items.Add("Item 1 = 1.00")
        subTotal += 1.00;
   }

   if (lstBoxItemSelection.Text =="Item 2 = 2.00"  )
   { 
        LstBoxSummary.Items.Add("Item 2 = 2.00")
        subTotal += 2.00;
   }

   this.txtBoxSubTotal.Text = subtotal.ToString();
}

答案 1 :(得分:0)

您的subTotal仅存在于该单个事件的事件处理程序中。 下次有新的subTotal。

将subTotal移出eventhandler或解析字段并将其添加到小计

this.txtBoxSubTotal.Text = (float.Parse(this.txtBoxSubTotal.Text,
                            CultureInfo.InvariantCulture) 
                            + subTotal).ToString();