2013-02-05 143 views
0

调用子窗体的事件我有MDI form项目和一个叫BaseForm形式从Form和所有其他形式,包括从该BaseFormMDIparent继承继承。我的一些孩子形式可以编辑,所以我有Save按钮。如果有可打开的可编辑儿童窗体,我还要求保存父母的表格closing event。我不喜欢这样写道:Windows窗体 - 如何从父窗体

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表格中进行。

+0

所以,你有一个基本类型,你想能够调用一些成员方法从继承的类型。它是否正确 ? – TheKingDave

+0

即使我不确定这个问题....几乎与表单名称实际上相混淆... – Sandy

+0

@TheKingDave - 抱歉不是很清楚。这是对的,我想调用一个方法,更具体地说来自父母的事件。我想知道,如果所有事件都是私密的,这是否可能。 – Leron

回答

0

可以折射在SaveButton_Click的代码来调用一个名为SaveForm()方法,使这种方法公开,并且:

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