C# 从父级调用mdi子方法
我在MDI父窗体中有一个保存按钮,每次用户单击此按钮时,我都想调用活动MDI子窗体中的某些方法 假设我将activemdichild.name存储在变量中C# 从父级调用mdi子方法,c#,winforms,mdi,C#,Winforms,Mdi,我在MDI父窗体中有一个保存按钮,每次用户单击此按钮时,我都想调用活动MDI子窗体中的某些方法 假设我将activemdichild.name存储在变量中 string name = this.ActiveMdiChild.Name.ToString(); 我所有的MDI子窗体都有一个保存方法 public void SaveForm() { //Some code here } 如何以编程方式调用SaveForm方法 如果这不是最佳实践,您有什么建议?假设MDI表单子项的类型是MyMdiF
string name = this.ActiveMdiChild.Name.ToString();
我所有的MDI子窗体都有一个保存方法
public void SaveForm()
{
//Some code here
}
如何以编程方式调用SaveForm方法
如果这不是最佳实践,您有什么建议?假设MDI表单子项的类型是MyMdiForm,您可以执行以下操作
foreach (var form in MdiChildren) {
var view = form as IEmpresas;
if (view != null) {
view.SaveForm();
}
}
假设MDI表单子项的类型为MyMdiForm,则可以执行以下操作
foreach (var form in MdiChildren) {
var view = form as IEmpresas;
if (view != null) {
view.SaveForm();
}
}
让您的子窗体实现一个接口,该接口定义了您希望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();
}
让您的子窗体实现一个接口,该接口定义了您希望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();
}
Mdi表单的类型是什么?您所说的“类型”是什么意思?公共部分课程EMPRESSVIEW:表格,IEmpresas??这就是我要找的。我会更新我的答案Mdi表格的类型是什么?你说的“类型”是什么意思?公共部分课程EMPRESSVIEW:表格,IEmpresas??这就是我要找的。我将更新我的回答我没有注意到表单已经实现了IEmpresas-该接口是否定义了保存方法?是的,IEmpresas中有一个保存表单方法我没有注意到表单已经实现了IEmpresas-该接口是否定义了保存方法?是的,IEMPRESASTANKS中有一个保存表单方法感谢您的回答Jared,只有一个问题,如果我已经认识一个孩子,那么有什么必要反复讨论孩子们呢?@JorgeZapata我已经偏离了你问题的标题。如果您只想保存活动的,那么您可以在ActiveMdiChild值上执行内部循环。谢谢您的回答,Jared,只有一个问题,如果我已经知道ActiveMdiChild,那么有什么必要遍历子对象?@JorgeZapata我已经离开了您问题的标题。如果您只想保存活动的,那么您可以对ActiveMdiChild值执行循环的内部主体