1

F1 と F2 の 2 つのフォームがあります。F1にはリストビューと追加ボタンがあります。追加ボタンをクリックするとF2が開き、いくつかの値を追加できます。

F2でボタンを受け入れるボタンがあり、押すとF2からテーブルに値が追加され、F2が閉じます。

F1 でリスト ビューを更新するための更新メソッドを記述しました。私はF2のaccept button_clickイベントでこのメソッドを呼び出そうとしました..私はF2.csでこのようなものを書きました

F1 f=new F1();
private void accept_Click(object sender, EventArgs e)
{
    //my adding values code

    this.Close();
    f.refresh();
 }

リフレッシュメソッドは正しく機能しています..F2から呼び出すと、その機能を実行していないだけです..誰かが私が望むものを達成するためのより良い方法を親切に提案してください..どんな種類の提案も大歓迎です..

4

2 に答える 2

5

F1 への参照を F2 フォームに渡す必要があります。

F2 f = new F2(this);
f.Show();

この後、フォームf2でf1のグローバルオブジェクトを作成します

 f1 GBobjF1=null;

次に、そのオブジェクト GBobjF1 を次の f2 形式のコンストラクターで初期化します。

 public f2(f1  f1Obj)
    {
        InitializeComponent();
        GBobjF1 = f1Obj;

    }

これで、グローバル オブジェクト GBobjF1 を f2 フォームで使用できるようになりました。このオブジェクトを使用すると、f1 フォームのすべてのパブリック メンバーにアクセスできます。f1 の中にあるリストビューをリフィルできます:

GBobjF1.FillListView();

そのリストビューを更新して、新しい値で再入力します

于 2012-09-14T08:05:36.277 に答える
2

F1 への参照を F2 フォームに渡す必要があります。

F1形式で

F2 f = new F2();
f.f1ref = this;

F2形式で

public F1 f1ref;

private void accept_Click(object sender, EventArgs e)
{
//my adding values code
f1ref.refresh();
this.Close(); 
}
于 2012-09-14T07:43:43.753 に答える