【问题标题】:How to add money value to button c#如何为按钮添加货币价值c#
【发布时间】:2020-11-03 06:33:00
【问题描述】:

我正在用 c# WinForms 为一家比萨餐厅制作订单接收软件。我无法为按钮添加价格值。所以当单击按钮时,我希望它在列表框中显示项目的大小、名称和价格。到目前为止,这是我的代码,不确定我是否朝着正确的方向前进。

  namespace BPOSnew
 {
 public partial class Form2 : Form
 {
    private readonly SelectedPizza _selectedPizza;

    public Form2()
    {
        InitializeComponent();

        // Assigning Pizza Sizes

        BtnKids.Tag = "Kids";
        BtnKids.Click += ButtonSizeClick;

        BtnSmall.Tag = "Small";
        BtnSmall.Click += ButtonSizeClick;

        BtnMeduim.Tag = "Meduim";
        BtnMeduim.Click += ButtonSizeClick;

        BtnLarge.Tag = "Large";
        BtnLarge.Click += ButtonSizeClick;

        // Assigning Pizza Names

        BtnHawaiian.Tag = "Hawaiian";
        BtnHawaiian.Click += ButtonNameClick;

        BtnMeatLovers.Tag = "Meat Lovers";
        BtnMeatLovers.Click += ButtonNameClick;

        BtnCapricciosa.Tag = "Capricciosa";
        BtnCapricciosa.Click += ButtonNameClick;

        BtnMargherita.Tag = "Margherita";
        BtnMargherita.Click += ButtonNameClick;


        _selectedPizza = new SelectedPizza();
    }
    public class SelectedPizza
    {
        public string Size { get; set; }
        public string Name { get; set; }
        public string Price { get; set; }

        public string Format() => $"{Size} {Name} {Price}"; // Format inside Listbox
    }
    private void ButtonSizeClick(object sender, EventArgs e)
    {
        var button = (Button)sender;
        _selectedPizza.Size = button.Tag.ToString(); // Adds pizza size to order listbox
    }

    private void ButtonNameClick(object sender, EventArgs e)
    {
        var button = (Button)sender;
        _selectedPizza.Name = button.Tag.ToString();

        listBox1.Items.Add(_selectedPizza.Format()); // Adds pizza name to order listbox
    }

【问题讨论】:

  • 您可以将SelectedPizza 对象添加到ListBox,而不是字符串,然后使用按钮配置 一个新的SelectedPizza 对象。因此,当您选择一个 ListBox 项目后,您可以将SelectedItem 转换为SelectedPizza 并直接读取所有对象的详细信息。
  • 我不明白:P
  • 您的代码有什么问题?您看到的行为与您期望的行为是什么?

标签: c# winforms button int


【解决方案1】:

怎么样


private void ButtonSizeClick(object sender, EventArgs e)
        {
            var button = (Button)sender;
            _selectedPizza.Size = button.Tag.ToString(); // Adds pizza size to order listbox

            if (_selectedPizza.Name != null)
                _selectedPizza.Price = getPrice(_selectedPizza.Size);
        }

        private void ButtonNameClick(object sender, EventArgs e)
        {
            var button = (Button)sender;
            _selectedPizza.Name = button.Tag.ToString();

            if (_selectedPizza.Size != null)
                _selectedPizza.Price = getPrice(_selectedPizza.Size);

            listBox1.Items.Add(_selectedPizza.Format()); // Adds pizza name to order listbox
        }

        private string getPrice(string sSize)
        {
            string sPrice = "0.00";

            if (sSize == "Kids")
                sPrice = "4.99";

            if (sSize == "Small")
                sPrice = "5.99";

            //etc...

            return sPrice;

        }

这里的假设是价格仅基于披萨的大小。

【讨论】:

    猜你喜欢
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    相关资源
    最近更新 更多