MDI应用程序主菜单帮助

时间:2010-10-10 16:29:14

标签: c# mdi

我们正在开发一个MDI应用程序。我们需要做的是我有4个孩子表格和1个父表格。在父窗体ToolBox菜单上我有3个按钮。添加,保存,取消。

我想要做的是加载子表单的内容。点击这些按钮后,他们应该处理子表单上的操作。

LEts说,如果我的名为CustomerManager的子表单已打开,那么按下添加按钮它应该基本上处理我的CustomerManager子表单。显然,我会针对每个表单动作Button纠正逻辑。

我希望我能够定义我要找的东西。

此致 Shax

1 个答案:

答案 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..
    }