私が正しく理解している場合は、乗客に関するすべての情報と彼が選択した場所を保持する新しいクラス 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"
その場合、すべてのボタンに対して 1 つのハンドラーのみが必要です。
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;
}
もちろん、フォームのコンストラクターで、すべての場所のボタンにイベントハンドラーを追加します
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 クラスに保存します。アプリケーションの使用に応じて、場所のリストまたはハッシュテーブル (Place; Passenger) またはその他のものをフォームで作成します。