与列表视图列和其他代码有点混淆?

时间:2014-01-06 19:33:48

标签: c# .net winforms listview

我正在处理库存软件,现在我已经在文本框中询问了用户的产品数量和产品价格,并将它们添加到列表视图中,每次单击“添加产品”按钮时,文本框都会变为空白和数据进入列表视图,我想总计每个产品的价格(产品价格列中的值),我想在列表视图中添加所有价格,列表视图中添加值的代码是:

  private void btnAddProduct_Click(object sender, EventArgs e)
        {
            int totalPrice = 0;
            int val1, val2;
            string totalp;           


             val1 = Convert.ToInt32(txtProductPrice.Text);
             val2 = Convert.ToInt32(txtProductQuantity.Text);
             totalPrice = val1 * val2;

             totalp = Convert.ToString(totalPrice);


            lvProductInfo.Items.Add(""); //  QuestionID 
            lvProductInfo.Items[lvProductInfo.Items.Count - 1].SubItems.Add(txtProdcutCode.Text); //Question
            lvProductInfo.Items[lvProductInfo.Items.Count - 1].SubItems.Add(txtProductQuantity.Text); //Option1
            lvProductInfo.Items[lvProductInfo.Items.Count - 1].SubItems.Add(txtProductPrice.Text); //Option2
            lvProductInfo.Items[lvProductInfo.Items.Count - 1].SubItems.Add(totalp); //Option3


            txtProdcutCode.Clear();
            txtProductQuantity.Clear();
            txtProductPrice.Clear();
            txtCashRecived.Clear();



            txtProdcutCode.Focus();


        }

现在有两种方法可以做到这一点:

1)我每次捕获totalp的值并将其添加到前一个值中(意味着第二次将它添加到第一个)

2)或者我从列表视图中选择值并将它们全部添加(从价格列中挑选出所有值)###

但遗憾的是我无法正确地做到这一点,任何人都可以帮助我如何做到这一点?任何建议,将不胜感激!感谢。

3 个答案:

答案 0 :(得分:1)

或者你可以在每次添加项目时刷新总数,就像这样。 请注意,如果您有很长的项目列表,这可能会降低您的程序速度。

int totalPrice = 0;    
foreach (ListViewItem item in lvProductInfo.Items)
{
    int price = 0;
    if (double.TryParse(item.SubItems[2].Text, out price))
        totalPrice += price;
}

答案 1 :(得分:0)

我会为包含产品代码,数量和价格的广告资源订单项创建一个类。将这些对象添加到列表视图中时,请保留这些对象的列表。

答案 2 :(得分:0)

private Int32 cumPrice = 0;

totalp = Convert.ToString(totalPrice);  
cumPrice +=  totalp;     
lvProductInfo.Items[lvProductInfo.Items.Count - 1].SubItems.Add(cumPrice.ToString());