使用c#中的messagebox(或任何其他方法)将listBox中的数据显示为接收

时间:2015-02-21 06:38:11

标签: c# listbox

嘿伙计这是我的代码,用于从用户获取项目并使用C#计算总付款。我的问题是我如何处理收据部分?我被卡住了。我不知道是否使用messagebox或以其他形式使用datagrid。但我不知道如何使用它。 C#newbie here。在youtube上看到一些教程来获得这个。

由于

    private void getValues(string custOrder)
    {
        order.item = custOrder.Split('$')[0];   
        order.price = Convert.ToDouble(custOrder.Split('$')[1]);    
        finalBill += "Ordered Item: " + order.item + "\nPrice: " + order.price.ToString("C2") + "\n";   //C2 for 2 Decimal places
        updateBill();       
    }

    private void updateBill()
    {
        subtotal += order.price;
        total += order.price + (order.price * TAX);
        totalTaxes += order.price * TAX;

        listBox1.Items.Clear();     Only output latest bills
        listBox1.Items.AddRange(finalBill.Split('\n'));  
        listBox1.Items.Add("Subtotal: " + subtotal.ToString("C2"));
        listBox1.Items.Add("Tax: " + totalTaxes.ToString("C2"));
        listBox1.Items.Add("Total: " + total.ToString("C2"));
    }


    private void boxSelection(object sender, EventArgs e)   
    {
        {
            if (sender == meals)
                getValues(meals.SelectedItem.ToString());
            else if (sender == sideorders)
                getValues(sideorders.SelectedItem.ToString());
            else
                getValues(drinks.SelectedItem.ToString());
        }

    }



    private void ResetButton_Click(object sender, EventArgs e)
    {
        subtotal = 0;
        total = 0;
        totalTaxes = 0;
        finalBill = "FINAL BILL : \n";
        listBox1.Items.Clear();
    }

    private void print_receipt_Click(object sender, EventArgs e)
    {



    }

1 个答案:

答案 0 :(得分:0)

有很多方法可以完成您的工作,但一种简单的方法是使用foreach语句并构建一个字符串,例如....

string result;
foreach (string s in listbox1.items)
 {
 result = result + s + Environment.NewLine;
 }

MessageBox.Show(result);

如果你真的想在MessageBox显示它!

顺便说一句,使用Environment.NewLine代替"\n"

会更安全