如何知道下一个按下的是哪个按钮 C#

How to know which button is pressed next c#

我正在为一家比萨店开发一个接单系统,我想按比萨的大小,然后将按下的任何大小按钮 + 什么比萨添加到列表框。例如小号+夏威夷。到目前为止,这就是我尝试这样做的方法,但是它只能工作一次,因为我不确定如何重置 bool。

    bool ButtonSmallClicked = false;

    private void ButtonSmall_Click(object sender, EventArgs e)
    {
        ButtonSmallClicked = true;
    }

    private void ButtonHawaiian_Click(object sender, EventArgs e)
    {
        if (ButtonSmallClicked == true)
        {
            listBox1.Items.Add(string.Format("{0} {1}", buttonSmall.Text, buttonHawaiian.Text));
        }

对你有用吗?

private void ButtonSmall_Click(object sender, EventArgs e)
    {
        if(ButtonSmallClicked ==true)
              ButtonSmallClicked = false;
        else
              ButtonSmallClicked = true;
    }


 private void ButtonHawaiian_Click(object sender, EventArgs e)
    {
        if (ButtonSmallClicked == true)
        {
            listBox1.Items.Add(string.Format("{0} {1}", buttonSmall.Text, buttonHawaiian.Text));
ButtonSmallClicked == false;
        }
}

使用 .Tag 属性 并将点击值保存到变量以供进一步处理。

public class SelectedPizza
{
    public string Size { get; set; }
    public string Name { get; set; }

    public string Format() => $"{Size} {Name}";
}

public class MyForm
{
    private readonly SelectedPizza _selectedPizza;

    public MyForm()
    {
        buttonSmallSize.Tag = "Small";
        buttonSmallSize.Click += ButtonSizeClick;
        buttonLargeSize.Tag = "Large";
        buttonLargeSize.Click += ButtonSizeClick;
       
        buttonHawaiian.Tag = "Hawaiian";
        buttonHawaiian.Click += ButtonNameClick;

        _selectedPizza = new SelectedPizza();
    }   

    private void ButtonSizeClick(object sender, EventArgs e)
    {
        var button = (Button)sender;
        _selectedPizza.Size = button.Tag.ToString();
    }

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