(c# + windows forms) Adding items to listBox in di

2019-02-26 09:19发布

I have two classes(forms), and I would like an item from class2 to be added to listBox in class1 when I click "Accept" button.

I tried with the following code, but nothing changes in the listBox:

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();
}

Where did I make the mistake?

3条回答
我想做一个坏孩纸
2楼-- · 2019-02-26 09:54

you created a new entity of type CarRental. what you should do is to send the first form to the second on construct, and modify things through that instance.

查看更多
贪生不怕死
3楼-- · 2019-02-26 10:08

Declare RentalId property on Form2. And at CarRental form (your first form) do following:

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

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

Implement Fomr2.RentalId property this way:

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

Then select your "Accept" button and set its DialogResult property to OK. Thus clicking on that button will close your dialog form and return DialogResult.OK.

查看更多
兄弟一词,经得起流年.
4楼-- · 2019-02-26 10:12

You need to access the open form instead of creating new instance of CarRental form

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();
}
查看更多
登录 后发表回答