2

2 つのクラス (フォーム) があり、[同意する] ボタンをクリックするとアイテムclass2が追加されるlistBoxようにしたいと考えています。class1

次のコードを試してみましたが、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();
}

どこで間違いを犯したのですか?

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 の新しいエンティティを作成しました。あなたがすべきことは、最初のフォームを 2 番目の on コンストラクトに送信し、そのインスタンスを介して変更することです。

于 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 に答える