C # окна формы списка всего - PullRequest
       16

C # окна формы списка всего

0 голосов
/ 29 февраля 2012

У меня есть форма, которая имеет две кнопки, текстовое поле, список и поле со списком. Проблема, которую я имею, когда я пытаюсь составить кнопку Я не могу понять, как получить значения стоимости из этого списка, поэтому я могу подсчитать общую стоимость заказа. Спасибо за предложения.

    private void Order_Click(object sender, EventArgs e)
    {
        amount = int.Parse(textBox1.Text);
        cost *= amount;

        if (comboBox1.SelectedItem.ToString() == "Eggs")
        {
            listBox1.Items.Add("The cost for  " + amount + " 
            dozen large, fresh eggs is: " + (cost).ToString("C"));
            comboBox1.Text = "";
            textBox1.Text = "0";
            textBox1.Focus();
            comboBox1.Focus();
        }
        else if (comboBox1.SelectedItem.ToString() == "Milk")
        {
            if (amount == 1)
            {
                listBox1.Items.Add
                ("The Cost for a fresh quart milk is: " + (cost).ToString("C"));
                comboBox1.Text = "";
                comboBox1.Focus();
                textBox1.Text = "0";
                textBox1.Focus();
            }
            else
            {
                listBox1.Items.Add
            ("The Cost for " + amount + "  quarts of fresh milk is: " + 
                (cost).ToString("C"));
                comboBox1.Text = "";
                comboBox1.Focus();
                textBox1.Text = "0";
                textBox1.Focus();
            }
        }
        else
        {
            listBox1.Items.Add
             ("The Cost for " + amount + " fresh loafs of bread is: " + (cost).ToString("C"));
            comboBox1.Text = "";
            comboBox1.Focus();
            textBox1.Text = "0";
            textBox1.Focus();
        }
    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (comboBox1.SelectedItem.ToString() == "Eggs")
        {
            cost = 1.90;
            label1.Text = "The Cost is " + (cost).ToString("C") + " per dozen";
        }
        else if (comboBox1.SelectedItem.ToString() == "Milk")
        {
            cost = 1.47;
            label1.Text = "The Cost is " + (cost).ToString("C") + " per quart";
        }
        else
        {
            cost = 2.12;
            label1.Text = "The Cost is " + (cost).ToString("C") + " per loaf";
        }
    }

    private void total_Click(object sender, EventArgs e)
    {


    }

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (!char.IsControl(e.KeyChar)
            && !char.IsDigit(e.KeyChar)
            && e.KeyChar != '.')
        {
            e.Handled = true;
        }

        if (e.KeyChar == '.'
    && (sender as TextBox).Text.IndexOf('.') > -2)
        {
            e.Handled = true;
        }
        if (e.KeyChar == '-'
 && (sender as TextBox).Text.IndexOf('-') > -2)
        {
            e.Handled = true;
        }
    }
}

}

1 Ответ

1 голос
/ 29 февраля 2012

Почему бы не использовать поле общего класса и добавлять к нему сумму каждый раз, когда вы добавляете элемент в список?Тогда у вас всегда будет общая стоимость без необходимости разбирать ее из списка.

public partial class Form1 : Form
{
    private double cost;
    private double total;
    int amount = 0;

    public Form1()
    {
        InitializeComponent();
    }

    private void Order_Click(object sender, EventArgs e)
    {
        amount = int.Parse(textBox1.Text);
        cost *= amount;
        total += cost;
        ...
    }
...