0

私はAとBのフォームを持っています。

実行すると、Aフォームはスタートボタンをクリックしてdatagridviewのすべての値を表示します。この同じフォームには、1つのlabellinkがあります。labelinkをクリックすると、Bフォームはコンボボックスと1つのボタンで表示されます。

ここで、1つのオプションを選択し、フォームのdatagridviewに値を表示するボタンをクリックします。

私の問題は、Bフォームで選択肢を選択した場合、結果はすでに開いているAフォームで表示されるはずですが、私の場合と同様に、別の新しいAフォームが開き、結果が表示されます。Aフォームを再度開いて処理する必要はありません。結果。

これどうやってするの?それを達成するための簡単な解決策?

4

3 に答える 3

0

コントローラがどのフォームが開いているかを「認識」しているMVCアーキテクチャを使用します。このようにして、フォームBはコントローラーにフォームAを表示するように指示し、コントローラーは1つのフォームAがすでに開いていると判断し、フォームAにそれ自体を更新するようにアドバイスします。

于 2012-08-17T10:32:12.497 に答える
0

FormAのインスタンスをFormBに渡します

public class FormB{

   public FormB(FormA formA){
    this.FormA=formA;
  }

  private void UpdateFormA(){
    formA.SetResult(...);
  }
}
于 2012-08-17T10:18:33.850 に答える
0

AISkiが提案しているように、MVCを使用するか、イベントとデリゲートを使用します。FORM Bからイベントを起動し、FORMAでサブスクライブします。

于 2012-08-17T10:44:24.440 に答える