从不同的形式更改按钮颜色

时间:2016-11-09 19:09:48

标签: c# winforms

我是c#的新手,我正在做这个关于使用visual studio制作服务员应用程序的课程。

用户按下座位号码,这是我想要更改颜色的按钮,并打开一个新表格,将订单放在用户选择用餐并提交订单的位置。提交后,我希望主表单上的座位颜色变为黄色,这表示订单已放在该座位号上。

以下是座位按钮在主窗体中的显示方式

public void button_clicked(object sender,EventArgs e)
{
    button seatButton = (Button)sender;
    string seat = seatButton.text;
    placeOrder po = new placeOrder(seat);
    po.showDialog();
}

以及提交订单按钮在提交订单表单中的显示方式

private void submitOrder_clicked(object sender,EventArgs e)
{
    if (listBoxMeals.Items.Count != 0)
       {
          alertbox.text = "You have placed your order successfully";

          // how to change seat button colour ?
       }
    else
       {
          alertbox.text = "Your meals list is empty";
       }
}

here is a picture of the forms

2 个答案:

答案 0 :(得分:1)

你可以这样做:

  1. 将按钮的可见性更改为Public中的frmMain

  2. submitOrder_clicked()的{​​{1}}事件中执行:

    frmChild1

答案 1 :(得分:0)

假设您要将其用于多个按钮,则可以创建对您刚刚单击的按钮的静态引用。

public static Button CurrentButton;
public void button_clicked(object sender,EventArgs e)
{
    button seatButton = (Button)sender;
    string seat = seatButton.text;
    placeOrder po = new placeOrder(seat);
    CurrentButton = button;
    po.showDialog();
}

然后只需在要更改按钮颜色的位置添加以下行:

    MainForm.CurrentButton.BackColor = Color.Yellow;