我有一个 MDI 父窗口,它可以包含来自特定子级的多个实例,称为frmChild。现在,当从父级单击特定控件时,我需要获取活动的 frmChild 并从 frmChild 调用特定方法
下面是我正在尝试实现的图像(获取活动的 MDI 子并从该类调用特定方法):
现在每个 frmChild 都通过以下方式实例化:
private void newFileToolStripMenuItem1_Click(object sender, EventArgs e)
{
frmNewDocument = new frmNewDocument();
frmNewDocument.MdiParent = this;
frmNewDocument.Show();
}
当我想从活动的 frmChild调用方法时,我正在尝试以下操作并被卡住:
private void saveFileToolStripMenuItem1_Click(object sender, EventArgs e)
{
/* get active MDI child*/
Form frmActiveNewDocument = this.ActiveMdiChild;
/* make sure MDI child is a "New Document" type form */
if (frmActiveNewDocument.GetType() == frmNewDocument.GetType())
{
/* invoke a method from active frmChild here */
}
}
我仍在学习 OOP,并且确信这是一些原则。如果能在文章中提到,那也太好了。
**注意:我读到对 frmChild 的干扰是解决此问题的最佳方法,因此主窗体不需要在每个 frmChild 中进行挖掘,因此我创建了一个 frmChild 使用的接口,即:**
public interface NewFileFormInterface
{
void saveFile();
}
现在,saveFile()是我想从 Main 调用的方法,它在 frmChild 中实现。
关于这个问题的任何帮助以及我可以研究的一些关键字都会很棒。
蒂亚!