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个总值,并将它们一个接一个地显示在一个新行上的消息框中。一旦用户单击退出按钮,就会显示此消息框。
答案 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();
}
}