我在MDI父表单中有一个保存按钮,每次用户单击此按钮时,我想在活动的MDI子表单中调用一些方法。
假设我将activemdichild.name存储在变量中。
string name = this.ActiveMdiChild.Name.ToString();
我所有的MDI子表单都有一个保存方法。
public void SaveForm()
{
//Some code here
}
如何以编程方式调用SaveForm方法?
如果这不是最佳做法,你有什么建议?
答案 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();
}