Да, вы можете легко обнаружить добавление форм в MDI Form.
Если пометить ParentForm как MdiContainer , установив для IsMdiContainer значение true, событие ParentForm.ControlAdded возникает для добавления элемента управления «MdiClient» в родительскую форму. Таким образом, при добавлении MdiClient в родительскую форму MDI мы можем вызвать событие ControlAdded для элемента управления MdiClient , как показано ниже,
public ParentForm()
{
InitializeComponent();
this.ControlAdded += Form1_ControlAdded;
this.IsMdiContainer = true;
Нам нужно поднять MdiClient.ControlAdded, как показано ниже,
void Form1_ControlAdded(object sender, ControlEventArgs e)
{
if(e.Control is MdiClient)
e.Control.ControlAdded += MdiClient_ControlAdded;
}
По умолчанию формы MDI Child добавляются в коллекцию элементов управления MdiClient в родительской форме. Поэтому, если установить значение ChildForm.MdiParent в качестве родительской формы, событие ControlAdded для MdiClient будет вызывать .
void MdiClient_ControlAdded(object sender, ControlEventArgs e)
{
}
Таким образом, используя описанный выше метод, вы можете узнать, какие дочерние MDI-формы добавлены в родительские MDI-формы . Таким образом, вы можете добавить событие ControlRemoved для элемента управления MdiClient, чтобы узнать дочерние формы, удаленные из формы MDI.
Надеюсь, это поможет вам.