(C#+ Windows窗体)在不同的类中添加项目列表框((c# + windows forms)

2019-07-03 22:26发布

我有两个班(形式),我想从一个项目class2被添加到listBoxclass1 ,当我点击“接受”按钮。

我试着用下面的代码,但没有在列表框中的变化:

private void button1_Click(object sender, EventArgs e)
{
    CarRental i = new CarRental();
    string id = idRental.Text.ToString();

    i.listBox1.Items.Add(id);
    i.listBox1.Update();
    this.Close();
}

我在哪里犯这样的错误?

Answer 1:

声明RentalId物业Form2 。 而在CarRental形式(你的第一种形式)做如下:

using(Form2 form2 = new Form2())
{
    if (fomr2.ShowDialog() != DialogResult.OK)
        return;

    listBox.Items.Add(form2.RentalId);
}

实施Fomr2.RentalId属性是这样的:

public string RentalId
{
   get { return idRental.Text; } // you don't need ToString() call
}

然后选择“接受”按钮,其设置DialogResult属性来OK 。 因此,点击该按钮会关闭您的对话形式,并返回DialogResult.OK



Answer 2:

你创建的类型CARRENTAL的一个新的实体。 你应该做的是通过实例的第一种形式发送到第二上构建和修改的东西。



Answer 3:

您需要访问开放的形式,而不是创建CARRENTAL形式的新实例

private void button1_Click(object sender, EventArgs e)
{
    CarRental i = (CarRental)Application.OpenForms["CarRentalFormObjectName"];
    string id = idRental.Text.ToString();

    i.listBox1.Items.Add(id);
    i.listBox1.Update();
    this.Close();
}


文章来源: (c# + windows forms) Adding items to listBox in different class