하나의 상위 폼을 생성하고 그에 대한 ControlAdded 이벤트를 발생시킵니다. 또한이 부모 폼에 대해 IsMdiContainer 속성을 true로 설정합니다. 나는이 위의 코드에서 새로운 ChildForm1 및 ChildForm2 코드를 다음과 같은라는 형태부모 MDI 폼에 새 MDI 폼이 추가되었음을 어떻게 알 수 있습니까?
public partial class ParentForm : Form
{
public ParentForm()
{
InitializeComponent();
this.ControlAdded += Form1_ControlAdded;
this.IsMdiContainer = true;
Form ChildForm1 = new Form();
ChildForm1.MdiParent = this;
ChildForm1.Show();
Form ChildForm2 = new Form();
ChildForm2.MdiParent = this;
ChildForm2.Show();
}
void Form1_ControlAdded(object sender, ControlEventArgs e)
{
MessageBox.Show("Control Added" + e.Control.Name);
}
}
을 만들 경우 부모에게 자식 폼을 추가 할 때 코드를 디버깅 할 때 그리고, 그것은 ControlAdded 이벤트를 발생시킵니다하지 않습니다 형성한다. 그래서 이것을 달성 할 수있는 방법을 제안 해 주시겠습니까?
가능한 하위 양식으로 탐지하는 [MDI 양식 추가 또는 제거] 가능한 복제본 (http://stackoverflow.com/questions/538204/mdi-form-detecting-with-a-child-form-is-added- 또는 제거) – BugFinder
훨씬 더 좋은 방법은 부모가 항상 새 MDI 하위 창을 만드는 부모가되도록하는 것입니다. 'public void CreateChild()에 T : Form'을 추가하십시오. 부모가 하나 밖에 없으므로 정적으로 만들 수도 있습니다. –