显示以前的值

时间:2012-12-04 03:58:46

标签: c# arrays loops

public partial class mainForm : Form
{
    public mainForm()
    {
        InitializeComponent();
    }
    private void btnCalculate_Click(object sender, EventArgs e)
    {
        string customerType = txtCustomerType.Text;
        decimal subtotal = Convert.ToDecimal(txtSubtotal.Text);
        decimal discountPercent = .0m;

        switch (customerType)
        {
            case "R":
                if (subtotal < 100)
                    discountPercent = .0m;
                else if (subtotal >= 100 && subtotal < 250)
                    discountPercent = .1m;
                else if (subtotal >= 250 && subtotal < 500)
                    discountPercent = .25m;
                else if (subtotal >= 500)
                    discountPercent = .30m;
                break;
            case "C":
                discountPercent = .2m;
                break;
            case "T":
                if (subtotal < 500)
                    discountPercent = .4m;
                else if (subtotal >= 500)
                    discountPercent = .5m;
                break;
            default:
                discountPercent = .1m;
                break;
        }

            decimal discountAmount = subtotal * discountPercent;
            decimal invoiceTotal = subtotal - discountAmount;

            txtDiscountPercent.Text = discountPercent.ToString("p1");
            txtDiscountAmount.Text = discountAmount.ToString("c");
            txtTotal.Text = invoiceTotal.ToString("c");

            txtCustomerType.Focus();            
        }


    private void btnExit_Click(object sender, EventArgs e)
    {

        int i = 0;
        string summaryString = txtTotal.Text;
        for (i = 0; i < 5; i++)
            summaryString += Environment.NewLine;

        MessageBox.Show(summaryString, "Order Totals");

        this.Close();
    }
}

一旦用户点击计算按钮,它将计算发票总额。我需要做的就是存储前5个总值,并将它们一个接一个地显示在一个新行上的消息框中。一旦用户单击退出按钮,就会显示此消息框。

2 个答案:

答案 0 :(得分:0)

这样的事情可能会指向正确的方向:

public partial class mainForm : Form
{
    public mainForm()
    {
        InitializeComponent();
    }

    private List<string> _totals = new List<string>();

    private void btnCalculate_Click(object sender, EventArgs e)
    {
            string customerType = txtCustomerType.Text;
            decimal subtotal = Convert.ToDecimal(txtSubtotal.Text);
            decimal discountPercent = .0m;

            switch (customerType)
            {
                case "R":
                    if (subtotal < 100)
                        discountPercent = .0m;
                    else if (subtotal >= 100 && subtotal < 250)
                        discountPercent = .1m;
                    else if (subtotal >= 250 && subtotal < 500)
                        discountPercent = .25m;
                    else if (subtotal >= 500)
                        discountPercent = .30m;
                    break;
                case "C":
                    discountPercent = .2m;
                    break;
                case "T":
                    if (subtotal < 500)
                        discountPercent = .4m;
                    else if (subtotal >= 500)
                        discountPercent = .5m;
                    break;
                default:
                    discountPercent = .1m;
                    break;
            }

            decimal discountAmount = subtotal * discountPercent;
            decimal invoiceTotal = subtotal - discountAmount;

            txtDiscountPercent.Text = discountPercent.ToString("p1");
            txtDiscountAmount.Text = discountAmount.ToString("c");
            txtTotal.Text = invoiceTotal.ToString("c");
            _totals.Add(txtTotal.Text);

            txtCustomerType.Focus();
        }


        private void btnExit_Click(object sender, EventArgs e)
        {
            MessageBox.Show(string.Join(Environment.NewLine, _totals.ToArray()), "Order Totals");
            this.Close();
        }

}

答案 1 :(得分:0)

试试这个。这将只给你最后五个总数:

public partial class mainForm : Form
{
public mainForm()
{
    InitializeComponent();
}

private List<string> allTotals = new List<string>();

private void btnCalculate_Click(object sender, EventArgs e)
{
        string customerType = txtCustomerType.Text;
        decimal subtotal = Convert.ToDecimal(txtSubtotal.Text);
        decimal discountPercent = .0m;

        switch (customerType)
        {
            case "R":
                if (subtotal < 100)
                    discountPercent = .0m;
                else if (subtotal >= 100 && subtotal < 250)
                    discountPercent = .1m;
                else if (subtotal >= 250 && subtotal < 500)
                    discountPercent = .25m;
                else if (subtotal >= 500)
                    discountPercent = .30m;
                break;
            case "C":
                discountPercent = .2m;
                break;
            case "T":
                if (subtotal < 500)
                    discountPercent = .4m;
                else if (subtotal >= 500)
                    discountPercent = .5m;
                break;
            default:
                discountPercent = .1m;
                break;
        }

        decimal discountAmount = subtotal * discountPercent;
        decimal invoiceTotal = subtotal - discountAmount;

        txtDiscountPercent.Text = discountPercent.ToString("p1");
        txtDiscountAmount.Text = discountAmount.ToString("c");
        txtTotal.Text = invoiceTotal.ToString("c");
        allTotals.Add(txtTotal.Text);

    if (allTotals.Count > 5) allTotals.RemoveAt(0);

        txtCustomerType.Focus();
    }


    private void btnExit_Click(object sender, EventArgs e)
    {
        MessageBox.Show(string.Join(Environment.NewLine, allTotals.ToArray()), "Order Totals");
        this.Close();
    }

}