0

嗨,我制作了一个 Windows 窗体。目标是在飞机上预订座位,但现在我发现我选择的路径非常令人苦恼 - 当乘客通过按下按钮以图形方式选择座位时,按钮的颜色正在更改,但现在我需要添加一段代码这可以帮助我保存这些信息并将其与乘客相关联。问候

private void button4_Click(object sender, EventArgs e)
{
    this.F16.BackColor = Color.LightBlue;
    this.F16.ForeColor = Color.Red;
}  
4

1 回答 1

1

如果我理解正确,那么只需创建一个新类Passenger,您可以在其中保留有关乘客的所有信息以及他选择的地点

public class Passenger
{
    public string Name { get; set; }
    public string place { get; set; } // or list of places

    public Passenger(String name)
    {
        this.Name = name;
    }

    public void savePlace(string newPlace)
    {
        this.place = newPlace;
    }

}

然后在您的表单中创建一个变量

private Passenger currentPassenger;

在你的函数里面保存一个选择的地方

private void button4_Click(object sender, EventArgs e)
{
    this.currentPassenge.SavePlace(this.F16.name)//or just "F16"
    this.F16.BackColor = Color.LightBlue;
    this.F16.ForeColor = Color.Red;
}  

如果每个地方都有自己的按钮,那么最好在 .Tag 属性中分配一个地方的数据

this.button4.Tag = "F16"

如果是这样,那么您只需要一个处理所有按钮的处理程序

    private void PlaceButtons_Click(object sender, EventArgs e)
    {
        Button btn = (Button)sender;
        this.currentPassenger.savePlace((string)btn.Tag);
        this.F16.BackColor = Color.LightBlue;
        this.F16.ForeColor = Color.Red;
    }

当然在 Form 的构造函数中向所有地方的按钮添加事件处理程序

this.button1.Click +=new EventHandler(PlaceButtons_Click);
this.button2.Click +=new EventHandler(PlaceButtons_Click);
this.button4.Click +=new EventHandler(PlaceButtons_Click);

或者,如果您想以其他方式与乘客相关联,则创建 Place 类

public class Place
{
    public string Code{ get; set; }//code of place "F16"
    public string passenger { get; set; } //Name of passenger

    public Place(String passengerName)
    {
        this.passenger = passengerName;
    }

    public void SavePassenger(string newpassenger)
    {
        this.passenger = newpassenger;
    }

}

并在事件处理程序 PlaceButtons_Click 中执行相同的操作,但将乘客姓名保存在 Place 类中。在表单中创建一个地点列表或哈希表(地点;乘客)或其他独立于应用程序使用的东西。

于 2012-11-29T17:11:27.417 回答