将按钮与乘客C#相关联

时间:2012-11-29 05:24:31

标签: winforms c#-4.0

您好我制作了一个窗体。目标是在飞机上预订座位,但现在我发现我选择的路径非常令人沮丧 - 当乘客通过按下按钮以图形方式选择座位时按钮的颜色正在改变,但现在我需要添加一段代码这可以帮助我保存这些信息并将其与乘客联系起来。 此致

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

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么只需创建一个新的乘客舱,在那里你可以保存乘客的所有信息并选择他的地方

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 class

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类中保存乘客名称。在表单中创建一个场所列表或哈希表(Place; Passenger)或其他不依赖于使用应用程序的内容。