0

我有 A 和 B 表格。

当我运行时,A 表单将通过单击开始按钮显示 datagridview 中的所有值。在同一个表单中,有一个 labellink。一旦我单击 labelink B 表单,将显示组合框和一个按钮。

现在我选择一个选项并单击我想在 A Form 的 datagridview 中查看值的按钮。

我的问题是当我在 B 表单中选择选项时,结果应该出现在已经打开的 A 表单中,但是在我的情况下,它将打开另一个新的 A 表单并显示结果。我不想再次打开 A 表单并处理结果。

我怎样才能做到这一点?实现它的简单解决方案?

4

3 回答 3

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

使用 MVC 架构,控制器“知道”哪些表单是打开的。这样,表单 B 告诉控制器显示表单 A,控制器决定一个表单 A 已经打开,并建议表单 A 更新自己。

于 2012-08-17T10:32:12.497 回答
0

正如 AISki 建议的那样,使用 MVC,否则使用事件和委托。从 FORM B 触发事件并在 FORM A 中订阅它。

于 2012-08-17T10:44:24.440 回答