2010-12-05 9 views
1

MDI 응용 프로그램은 한 번에 최대 자식 폼 하나를 보여주고 자식 폼에는 ControlBox가 없습니다. 자식 폼을 전환하는 작업은 부모의 MenuStrip에있는 항목을 통해 수행됩니다. .show를 사용하여 다른 아이를 보려고 전에 어떤 아이 양식이 보여지고 있는지를 알아야합니까?ControlBox가없는 MDI 자식 폼을 열고 닫는 방법

또한 모든 Child 양식에 대해 Maximized로 WindowState 속성을 설정하고 Size 속성을 무시하면 하위 폼에서 .show를 처음 사용할 때 부모에서 최대화되지 않습니다. 일단 아이를 숨기면, 다음 쇼는 최대화 된 아이 양식을 산출합니다. 자녀 양식이 처음으로 표시 될 때 최대화되는 것을 볼 수있는 방법이 있습니까?

+3

이러한 종류의 윈도우 잉 모델에는 MDI를 사용할 필요가 없습니다. 그냥 방해가됩니다. –

답변

0
  1. 당신은 일반적으로 당신이 다음 중 하나를 표시하기 전에 하나의 MDI 자식을 숨길 필요는 없지만, 타이밍이 혼동되는 경우 잘못된 형태가 상단에 끝낼 수 것이 가능하다. 시작시 또는 파일로드 또는 닫기시 발생할 수 있습니다.

  2. 부모가 아직 최대화되지 않은 상태에서 부모가로드를 완료하기 전에 하위 폼이로드되고있는 것일 수 있습니다. 자식 폼은 부모에서 올바르게 최대화 될 수 있지만 부모는 더 커집니다. 부모의 Shown 이벤트에서 자식 폼을 최대화 (또는 크기 조정?)하도록 설정하면이 문제를 해결할 수 있습니다. 부모의 ResizeEnd 이벤트에서도이 작업을 수행 할 수 있습니다.

한스 (Hans)는 MDI 대신 탭을 사용하는 것이 사회적으로 용인 할 수 있다고 생각합니다.

+0

"한 번에 최대 하나의 자녀 양식"만 표시하려는 경우 탭 사용을 권장하지 않습니다. 전환 할 수없는 다른 탭이 있으면 혼란 스러울뿐입니다. 단 하나의 탭 만 표시되면 공간 낭비 일뿐입니다. –

+0

좋은 지적. 그러나 파이어 폭스의 옵션처럼 열린 탭이 하나 밖에 없으면 탭의 상단을 제거 할 수 있습니다. – xpda

+0

귀하의 의견에 감사드립니다. 특정 소프트웨어의 경우 MDI는 완료된 거래입니다. – John

관련 문제