我们正在开发一个MDI应用程序。我们需要做的是我有4个孩子表格和1个父表格。在父窗体ToolBox菜单上我有3个按钮。添加,保存,取消。
我想要做的是加载子表单的内容。点击这些按钮后,他们应该处理子表单上的操作。
LEts说,如果我的名为CustomerManager的子表单已打开,那么按下添加按钮它应该基本上处理我的CustomerManager子表单。显然,我会针对每个表单动作Button纠正逻辑。
我希望我能够定义我要找的东西。
此致 Shax
答案 0 :(得分:0)
最好通过声明一个接口来完成:
public interface IChildCommands {
void Add();
void Save();
void Cancel();
}
让您的MDI子表单实现它:
public partial class Form2 : Form, IChildCommands {
// Right-click IChildCommands in the editor and choose Implement Interface
//...
}
在您的父级中,为工具栏按钮实现Click事件,如下所示:
private void AddButton_Click(object sender, EventArgs e) {
var child = this.ActiveMdiChild as IChildCommands;
if (child != null) child.Add();
}
如果子项处于活动状态但未实现该命令,则禁用该按钮也是一个好主意。您可以通过为Application.Idle事件编写事件处理程序来执行此操作:
void Application_Idle(object sender, EventArgs e) {
AddButton.Enabled = this.ActiveMdiChild is IChildCommands;
// etc..
}