我正在创建一个类似自助服务终端订购机的应用程序,使客户可以购买薄饼和比萨饼。
包括五种形式。主要形式,薄饼形式,比萨饼形式,大小形式和浇头形式。
主窗体有两个按钮:
当客户单击hoagie按钮时,将打开hoagie表单。 当客户单击比萨饼表单时,比萨饼表单将打开。这两种形式各自具有相应的选择。
Hoagie表单具有3个按钮,例如 hoagie1 / hoagie2 / hoagie3。
Pizza表单具有3个按钮,例如pizza1 / pizza2 / pizza3。
单击按钮时,将打开尺寸表格。尺寸表具有3个按钮,例如小/中/大。大小形式由薄饼形式和披萨形式共享。
单击按钮时,将打开包含不同浇头的浇头表格。一种用于薄饼,一种用于披萨。
这就是我遇到的问题。如果我之前单击了hoagie按钮,然后单击了hoagie1按钮,然后单击了小按钮,则应该打开hoagie浇头表格。如果我之前单击“比萨饼”按钮,然后单击“ pizza1”按钮,然后单击“小”按钮,则应该打开“比萨饼浇头”表单。我将如何处理?
这是我从尺寸表中获得的小按钮单击事件。
private void btnSmall_Click(object sender, EventArgs e)
{
frmToppings frmToppings = new frmToppings();
if (//hoagies)
{
frmToppings.DrawHoagieToppingsForm();
}
else (//pizzas)
{
frmToppings.DrawPizzaToppingsForm();
}
}
答案 0 :(得分:1)
在大小形式的构造函数中,您可以通过一个包含您所使用形式的详细信息的枚举值。将其放入您的尺寸表中:
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或Hoagies表单中使用此表单:
SizeForm form = new SizeForm(FoodType.Pizza);
form.ShowDialog();
您还可以通过一个持有您的frmToppings.DrawHoagieToppingsForm();
或frmToppings.DrawPizzaToppingsForm();
的委托,然后在您的btnSmall_Click
中呼叫该委托
答案 1 :(得分:0)
我不确定这是否是您所需要的,您的解释有些混乱
因此,您有5个表单,并且每个表单中都有一个按钮应打开另一个表单?如果您在form1中,则有一个按钮可以打开form2或form3 如果您在Form2中,则有一个按钮可以打开Form3或Form 4?
因此,在此示例中,代码可能位于主表单中,它具有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();
}