尝试从第二个表单更新一个表单的列表

时间:2019-04-29 04:23:16

标签: c#

我是C#的第一学期学生,试图在暑假期间学习,以便在秋天的学校重新开学时能够领先。
我有一个多格式应用程序,正在使用列表来存储信息和统计信息。
在表格一中,我有一个存储圆顶硬礼帽名称的列表。这种形式称为MainForm。在第二个窗体上,从MainForm上的一个按钮打开,我有两个用于输入名字和姓氏的文本框,以及一个“添加圆顶硬礼帽”按钮。
我希望能够在文本框中输入信息并具有这将更新我在MainForm上创建的列表。 第二种形式称为AddBowlerForm。我已经为此工作了几天,而我却跟随了如此多的教程和youtube视频,以至于我几乎迷失了起点。

我目前在MainForm上的代码:

private void MainForm_Load(object sender, EventArgs e)
    {
        //create list to hold names of bowlers
        List<string> listBowlers = new List<string>();

        ReadBowlers(listBowlers);
        DisplayBowlers(listBowlers);
    }
private void buttonAddBowler_Click(object sender, EventArgs e)
    {
        //create instance of AddBowlerForm
        AddBowlerForm addBowler = new AddBowlerForm(this);
        if (addBowler.ShowDialog(this) == DialogResult.OK)
        {
            listBowlers.items.add(addBowler.Bowler());
            listBoxBowlers.Items.Add(AddBowlerForm.Bowler());

        }

        //Display the form.
        addBowler.ShowDialog();

AddBowlerForm中的相关代码:

public AddBowlerForm(MainForm mainForm)
    {
        InitializeComponent();
        this.mainForm = mainForm;

    }
    public string Bowler
    {
        get
        {
            return textBoxFirstName.Text + textBoxLastName.Text;
        }
    }
private void buttonAdd_Click(object sender, EventArgs e)
    {
        DialogResult = DialogResult.OK;

    }

在此方面,我将不胜感激。在过去的几天里,我阅读的网页超过了我的记忆,但是不确定我要去哪里。

1 个答案:

答案 0 :(得分:0)

您需要一个称为处理程序的东西。

处理程序就像对对象的承诺,它说“调用此方法时,将有一个处理程序”,即使执行该处理的方法完全超出了调用该对象的对象的范围处理程序。

因此,您的NewBowler表单需要在其构造函数中包含一个委托,该委托指向一个需要您需要输入的方法。因此,当您单击表单上的Submit按钮时,按钮调用的方法将引发您在构造函数中提供的“ NewBowlerHandler()”事件。

然后,无论MainForm上支持添加圆顶硬礼帽的任何方法都将处理表单提供的输入。

如果您需要更多有关委托人,处理程序和事件的资源,请在EventHandler Delegates

中找到文档。