Windows窗体 - 如何从父窗体调用子窗体事件

时间:2013-02-05 09:10:51

标签: c# winforms visual-studio-2010 events

我有一个MDI form项目和一个名为BaseForm的表单,该表单继承自Form以及所有其他表单,包括MDIparent继承自此BaseForm。我的一些孩子表单可以编辑,所以我有Save按钮。如果有可打开的可编辑子表单,我还要求保存父表单closing event。我是这样做的:

 protected void IsEditable()
        {
            foreach (BaseForm f in MdiChildren)
            { 
                if (f.isEditable == true)
                {
                    MessageBox.Show("To Do Save" + f.GetType().ToString());
                    f.Close();
                }
            }
        }

问题是我已经为孩子save事件的Save button on click逻辑实施了一次。我不想再次编写相同的代码,所以有没有办法从上面的代码中调用事件(保存保存逻辑)。检查表单是否可编辑是在BaseForm表单中进行的。

1 个答案:

答案 0 :(得分:0)

您可以对SaveButton_Click中的代码进行折射,以调用名为SaveForm()的方法,将此方法设为公开,并且:

protected void IsEditable()
    {
        foreach (ChildForm f in MdiChildren)
        { 
            if (f.isEditable == true)
            {
                f.SaveForm();
                f.Close();
            }
        }
    }