I have 3 list boxes, the listBox_menu is where the items are first displayed if buttons (entrees, drinks, and sides) are clicked, then to add the items to order you select your item from the listBox_menu and click add to order to have it appear in the listBox_order. From there once the customer order is ready to be made the submit button will print out the customers name (textBox_name) and all the items in the listBox_order, and display it all in one line.
I'm just having trouble figuring out how to do that, if anyone could please help.
CodePudding user response:
First define two global variables, then use the CalculateTotalCost
function (which I defined).
My answer has been updated.
Output (tested in Visual Studio 2017
, .Net Framework 4.5.2
):
These are my codes:
public Form1()
{
InitializeComponent();
listBox_menu.SelectionMode = SelectionMode.MultiExtended;
}
double Cost = 0;
string Order = null;
public double CalculateTotalCost(object input, bool Total)
{
if (Total == true)
{
switch (input)
{
case "Salad":
Cost = 2500;
break;
case "Rice":
Cost = 3000;
break;
case "non-alcoholic beer":
Cost = 1000;
break;
case "Water":
Cost = 200;
break;
case "Ex1":
Cost = 2200;
break;
default:
Cost = 2200;
break;
}
}
else
{
switch (input)
{
case "Salad":
Cost -= 2500;
break;
case "Rice":
Cost -= 3000;
break;
case "non-alcoholic beer":
Cost -= 1000;
break;
case "Water":
Cost -= 200;
break;
case "Ex1":
Cost -= 2200;
break;
default:
Cost -= 2200;
break;
}
}
return Cost;
}
private void Entrees_Click(object sender, EventArgs e)
{
listBox_menu.Items.Clear();
listBox_menu.Items.Add("Salad");
listBox_menu.Items.Add("Rice");
}
private void Drinks_Click(object sender, EventArgs e)
{
listBox_menu.Items.Clear();
listBox_menu.Items.Add("non-alcoholic beer");
listBox_menu.Items.Add("Water");
}
private void Sides_Click(object sender, EventArgs e)
{
listBox_menu.Items.Clear();
listBox_menu.Items.Add("Ex1");
listBox_menu.Items.Add("Ex2");
}
private void AddtoOrder_Click(object sender, EventArgs e)
{
if(listBox_menu.SelectedItems.Count>0)
{
for (int i = 0; i < listBox_menu.SelectedItems.Count; i )
{
listBox_order.Items.Add(listBox_menu.SelectedItems[i].ToString());
lblTotalCost.Text = (CalculateTotalCost(listBox_menu.SelectedItems[i].ToString(),true)).ToString();
}
}
}
private void RemoveFromOrder_Click(object sender, EventArgs e)
{
if (listBox_order.SelectedItems.Count > 0)
{
listBox_order.Items.Remove(listBox_order.SelectedItem);
}
Order = null;
for (int i = 0; i < listBox_order.Items.Count; i )
{
Order = listBox_order.Items[i].ToString() " , ";
}
Cost = 0;
if (listBox_order.Items.Count > 0)
{
for (int i = 0; i < listBox_order.Items.Count; i )
{
Cost = (CalculateTotalCost(listBox_order.Items[i], true));
}
}
lblTotalCost.Text = Cost.ToString();
}
private void Submit_Click(object sender, EventArgs e)
{
MessageBox.Show("Customer name: " txtBoxCustomerName.Text " Orders: " Order " Total cost: " Cost);
}
Note: if this solution helps you, please mark as answer (don't forget to vote for me).
Thanks