如何在C#中将计算输入到MessageBox中

时间:2014-04-30 00:08:38

标签: c# forms

我正在尝试将我的程序结束时的“更改”计算到MessageBox中。输入文本框的美元金额需要从中减去总数,但我似乎无法看到我做错了什么。任何人都可以帮我完成这个吗?

namespace HardwareStore
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();

            ProductBox.Items.Add(new Hardware() { ItemNo = 1010, ProdName = "Hammer         ", Price = (decimal)14.99d });
            ProductBox.Items.Add(new Hardware() { ItemNo = 1056, ProdName = "Bag of Nails   ", Price = (decimal)19.99d });
            ProductBox.Items.Add(new Hardware() { ItemNo = 2001, ProdName = "Saw               ", Price = (decimal)29.99d });
            ProductBox.Items.Add(new Hardware() { ItemNo = 2005, ProdName = "Chainsaw       ", Price = (decimal)69.99d });
            ProductBox.Items.Add(new Hardware() { ItemNo = 3090, ProdName = "Ladder          ", Price = (decimal)109.99d });
        }

        private void frmMain_Load(object sender, EventArgs e)
        {

        }

        private void btnAddItem_Click(object sender, EventArgs e)
        {
            try
            {
                for (int i = 0; i < int.Parse(txtQuantity.Text); i++)
                    ReceiptBox.Items.Add(ProductBox.Items[ProductBox.SelectedIndex]);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void ReceiptBox_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void btnCalculate_Click(object sender, EventArgs e)
        {

            decimal subTotal = ReceiptBox.Items.Cast<Hardware>().Sum(item => item.Price);
            decimal tax = Math.Round((subTotal * .075M), 2);
            decimal total = subTotal + tax;

            lblSub.Text = "$" + subTotal.ToString();
            lblTax.Text = "$" + tax.ToString();
            lblTotal.Text = "$" + total.ToString();

            lblSub.Visible = true;
            lblTax.Visible = true;
            lblTotal.Visible = true;
        }

        private void btnChange_Click(object sender, EventArgs e)
        {

            MessageBox.Show("Change Due: $  ");

        }
    }
}

1 个答案:

答案 0 :(得分:0)

我想我抓了两次......

decimal total = 0; //declare the total as global variable
private void btnCalculate_Click(object sender, EventArgs e)
    {

        decimal subTotal = ReceiptBox.Items.Cast<Hardware>().Sum(item => item.Price);
        decimal tax = Math.Round((subTotal * .075M), 2);
        total = subTotal + tax;

        lblSub.Text = "$" + subTotal.ToString();
        lblTax.Text = "$" + tax.ToString();
        lblTotal.Text = "$" + total.ToString();

        lblSub.Visible = true;
        lblTax.Visible = true;
        lblTotal.Visible = true;
    }

 private void btnChange_Click(object sender, EventArgs e)
 {
     decimal customerPay = 100;

     if (total != 0){
             decimal changeDue = customerPay - total;

             txtDollar.Txt = "$ " + changeDue.toString();

             MessageBox.Show("Change Due: " + txtDollar.Txt);
     }


 }