如果我理解正确,那么只需创建一个新类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 类中。在表单中创建一个地点列表或哈希表(地点;乘客)或其他独立于应用程序使用的东西。