从父级调用mdi子方法

时间:2012-03-14 23:10:55

标签: c# winforms mdi

我在MDI父表单中有一个保存按钮,每次用户单击此按钮时,我想在活动的MDI子表单中调用一些方法。

假设我将activemdichild.name存储在变量中。

string name = this.ActiveMdiChild.Name.ToString();

我所有的MDI子表单都有一个保存方法。

public void SaveForm()
{
//Some code here
}

如何以编程方式调用SaveForm方法?

如果这不是最佳做法,你有什么建议?

2 个答案:

答案 0 :(得分:2)

假设MDI Form子类型为MyMdiForm,您可以执行以下操作

foreach (var form in MdiChildren) {
  var view = form as IEmpresas;
  if (view != null) {
    view.SaveForm();
  }
}

答案 1 :(得分:2)

让您的孩子表单实现一个界面,定义您期望您的mdi孩子实现的事物。

如:

IChildWindow
{
  void Save()
}

public class MyChildClass : IChildWindow
{
  public void Save()
  {
  }
}

然后在您的mdi父表单中:

foreach (var child in MdiChildren)
{
  var childAsIWindow = child as IChildWindow;
  if (childAsIWindow == null) throw new InvalidOperationException("Not a IChildWindow");
  // or you could just ignore them.

 childAsIWindow.Save();
}