0
MDI 형식을 세로로 분할하는 데 SplitContainer를 사용하고 있습니다. 왼쪽 패널에는 트리 컨트롤이 있고 오른쪽 패널에는 하위 폼이 표시됩니다. 나는 언제든지 아이 양식의 단일 인스턴스 만 열려 있도록 노력하고 있습니다. 그렇게하기 위해 나는 MdiChildren 수를 확인하고 있습니다. 그러나 분할 컨테이너의 오른쪽 패널에 하위 폼을 추가 한 후 mdi 자식 수는 0으로 다시 설정됩니다. 상기 코드 샘플 MDI 및 SplitContainer와 충돌
subjectForm.MdiParent = this;
Console.WriteLine("B => " + this.MdiChildren.Length);
this.splitContainer1.Panel2.Controls.Add(subjectForm);
Console.WriteLine("A => " + this.MdiChildren.Length);
이 제가
B => 1을 얻고 응답이고; A => 0
어디서 잘못 생각하나요?
패널에 MDI 하위 창을 넣을 수 없습니다. Winforms는 예외를 throw하는 것을 잊어 버립니다. 이런 식으로하고 싶을 때 MDI를 사용하지 마십시오. –
이것을 달성하는 다른 방법은 무엇입니까? 대신 분배기를 사용해야합니까? 그러나 MS는 그렇지 않으면 제안합니다. 또는 SplitContainer에서 올바른 패널을 제거 할 수있는 방법이 있습니까? – cosmos
패널에 UserControl을 넣기 만하면됩니다. –