2

我有两个类(表单),我希望在单击“接受”按钮时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();
}

我在哪里犯了错误?

4

3 回答 3

2

在 上声明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

于 2012-11-18T11:23:55.907 回答
0

您创建了一个类型为 CarRental 的新实体。您应该做的是将第一个表单发送到第二个表单,并通过该实例修改内容。

于 2012-11-18T11:22:47.227 回答
0

您需要访问打开的表单,而不是创建 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();
}
于 2012-11-18T11:23:13.800 回答