C # Как работать с динамическими кнопками и несколькими формами - PullRequest
0 голосов
/ 28 ноября 2018

Я создаю приложение, похожее на машину для заказа киосков, которое позволяет покупателям покупать сладости и пиццу.

Включено пять форм.Основная форма, форма hoagie, форма для пиццы, форма размера и форма начинки.

Основная форма имеет две кнопки:

  • hoagie
  • pizza

Когда клиент нажимает на кнопку hoagie, hoagieФорма открывается.Когда клиент нажимает на форму для пиццы, открывается форма для пиццы.Эти две формы имеют разные варианты выбора соответственно.

Форма Hoagie имеет 3 кнопки, такие как hoagie1 / hoagie2 / hoagie3.

Форма Pizza имеет 3 кнопки, такие как pizza1 / pizza2 / pizza3.

При нажатии кнопки,форма размера открыта.Размер формы имеет 3 кнопки, такие как маленький / средний / большой.Форма размера разделяется как формой hoagie, так и формой пиццы.

При нажатии кнопки открывается форма начинки, которая содержит разные начинки.Один для меха и один для пиццы.

Вот где я застрял.Если я нажал на кнопку hoagie ранее, затем на кнопку hoagie1, а затем на маленькую кнопку, то должна открыться форма начинки hoagie.Если я нажал на кнопку пиццы ранее, затем на кнопку pizza1, а затем на маленькую кнопку, то должна открыться форма начинки для пиццы.Как бы я поступил об этом?

Это то, что у меня есть для небольшого события нажатия кнопки из формы размера.

private void btnSmall_Click(object sender, EventArgs e)
    {
        frmToppings frmToppings = new frmToppings();
        if (//hoagies)
        {
            frmToppings.DrawHoagieToppingsForm();
        }
        else (//pizzas)
        {
           frmToppings.DrawPizzaToppingsForm();
        }
    }

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Я не уверен, что это то, что вам нужно, ваше объяснение немного сбивает с толку

Итак, у вас есть 5 форм, и у вас есть кнопка в каждой из форм, которая должна открывать другую форму?Если вы в форме 1, есть кнопка, которая открывает форму 2 или форму 3 А если вы находитесь в форме 2, есть кнопка, которая открывает форму 3 или форму 4?

Таким образом, в этом примере приведен код, который может быть в главной форме1, он имеет 2 кнопки, одна открывает пиццу, другая открывает формы с надписями при нажатии на них

private void openform2_Click(object sender, EventArgs e) //the action of clicking the button that has the name of "openform2"

    {
        Form2 pizza = new Form2(); //the form2 is your second form, it will opened when openform2 button is clicked
        pizza.Show();
    }

    private void openform3_Click(object sender, EventArgs e) //the action of clicking the button that has the name of "openform3"
    {
        Form3 hoagies = new Form3();
        hoagies.Show();
    }
0 голосов
/ 28 ноября 2018

В вашем конструкторе формы вашего размера вы можете передать значение enum, содержащее детали формы, в которой вы находитесь.Поместите это в форму размера:

public enum FoodType {
Pizza,
Hoagies
}

А затем ваш конструктор формы размера и личное поле:

private FoodType type { get; set; }
public SizeForm(FoodType type)
 {
      this.type = type;
 }

А затем в обработчике нажмите кнопку

private void btnSmall_Click(object sender, EventArgs e)
{
    frmToppings frmToppings = new frmToppings();
    if (type == FoodType.Hoagies)
    {
        frmToppings.DrawHoagieToppingsForm();
    }
    else (type == FoodType.Pizza)
    {
       frmToppings.DrawPizzaToppingsForm();
    }
}

И используя это из формы Pizza or Hoagies:

SizeForm form = new SizeForm(FoodType.Pizza);
form.ShowDialog();

Вы также можете пройти через некоторого делегата, который содержит ваш frmToppings.DrawHoagieToppingsForm(); или frmToppings.DrawPizzaToppingsForm();, а затем вызвать этого делегата в вашем btnSmall_Click

...