Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms 将按钮与乘客C关联#_Winforms_C# 4.0 - Fatal编程技术网

Winforms 将按钮与乘客C关联#

Winforms 将按钮与乘客C关联#,winforms,c#-4.0,Winforms,C# 4.0,嗨,我制作了一个windows窗体。我们的目标是在飞机上预定座位,但现在我发现我选择的路径非常令人不安——当乘客通过按下按钮以图形方式选择座位时,按钮的颜色正在改变,但现在我需要添加一段代码来帮助我保存此信息并将其与乘客关联。 问候 若我理解正确,那个么就创建一个新的类乘客,在那个里你们保存关于乘客的所有信息并由他选择位置 public class Passenger { public string Name { get; set; } public string place {

嗨,我制作了一个windows窗体。我们的目标是在飞机上预定座位,但现在我发现我选择的路径非常令人不安——当乘客通过按下按钮以图形方式选择座位时,按钮的颜色正在改变,但现在我需要添加一段代码来帮助我保存此信息并将其与乘客关联。 问候


若我理解正确,那个么就创建一个新的类乘客,在那个里你们保存关于乘客的所有信息并由他选择位置

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;
    }
当然,在表单的构造函数中,向所有位置的按钮添加事件处理程序

this.button1.Click +=new EventHandler(PlaceButtons_Click);
this.button2.Click +=new EventHandler(PlaceButtons_Click);
this.button4.Click +=new EventHandler(PlaceButtons_Click);
或者,如果希望以其他方式将Place与passenger关联,则创建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中执行相同的操作,但在PlaceClass中保存乘客姓名。在表单中创建位置列表或哈希表(Place;Passenger)或其他与应用程序的使用无关的内容。

不幸的是,您的问题有点难以理解。你能试着重新措辞吗?你的问题不可理解!!!我看不到你粘贴的代码和上面的文本之间的联系。请重新回答您的文字问题,以便我们“了解”,如果您知道如何帮助您的话。:-)了解了吗?;-)我是否正确理解您只需要以某种方式存储乘客自己选择的座位的信息?正如其他人所指出的。。。我甚至没有看到任何迹象表明您有一个数据持久层。您是否已保存有关乘客的其他信息?你们有乘客舱吗?你有数据库吗?你是否真的设计了一个表单,当你点击一个按钮时,它的颜色就改变了?如果这就是你所做的全部工作,那么你还有很长的路要走。需要更多的代码/示例/信息。很抱歉我的英语不好。。。我需要使用序列化来保存信息。但我得到的答案很有帮助。。。
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;
    }

}