2010-08-06 7 views
1

MDIChild 폼을 항상 다른 MDIChild 폼 위에 표시하려면 어떻게합니까? 나는 True로 ChildForm의 TopLevel이 속성을 설정하기 위해 노력하고 오류 메시지를 가지고MDI 자식 표시 항상 다른 MDI 자식 맨 위에

나는 True로 ChildForm의 맨 위의 속성을 설정하지만 형태는 여전히 같은 방식으로 동작합니다 ... " 부모가있는 컨트롤의 최상위 스타일은 변경할 수 없습니다. "

어떻게해야합니까? MdiChildActivate 이벤트 다시 초점

또는 필요한 창을 다시 활성화 : 집중해야 하나 귀하의 MdiChild 양식 때문에

감사

답변

1

프레임 워크는 분명히 서로를 소유 MDI 자식 창을 지원하지 않습니다

static Form f1 = new Form(); 
    static Form f2 = new Form(); 
    static Form f3 = new Form(); 

    [STAThread] 
    static void Main() 
    { 
    f1.IsMdiContainer = true; 
    f2.MdiParent = f1; 
    f3.MdiParent = f1; 
    f1.Show(); 
    f2.Show(); 
    f3.Show(); 
    f2.Activated += new EventHandler(f2_Activated); 
    Application.Run(f1); 
    } 

    static void f2_Activated(object sender, EventArgs e) 
    { 
    f3.Activate(); 
    } 

을 나는 일반적으로 단지 소유 형태는 MDI 자식 폼하지합니다. 그들은 MDI 컨테이너에 머물러 있지 않지만 적어도 그들은 앞에 머물러 있습니다.

아마도이 제한이 존재하는 이유는 소유자 인 MDI 자식이 컨테이너 내에서 최대화 될 때 이상하거나 모호한 원하는 동작 때문일 수 있습니다. 이 경우 위의 코드를 사용하면 소유 된 양식을 최대화 된 부모 뒤에 놓을 수 있습니다. 그래도 컨테이너 바깥에 있으면 컨테이너가 보이게됩니다.

+0

코드가 작동합니다 .. 하지만 슬픈 부분은 다른 모든 형태의 응용 프로그램에 대해이 이벤트를 연결해야한다는 것입니다. –

+0

자식이 활성화되면 MDI 부모에 대한 이벤트도 있습니다. – BlueMonkMN

0

// 편집

, 다음을 시도 활성화 된 하위 창으로

Deactivated 이벤트를 사용하여 해당 하위 창의 다시 초점을 적용 할 수도 있습니다.

양식을 만들고 초점 메서드 호출을 추가 할 때 표시하십시오.

ChildForm.Focus() 

포커스를 설정하면 최상위로 설정해야합니다.

희망이 있습니다. 당신이 그 행동을 직접 시뮬레이션 할 수 있도록

+0

제어 메인 부모의 (이)와 같은 새로운 도구 상자를 선언 상태를 표시하고 다른 모든 양식 위에 표시합니다 ...하지만 사용자가 다른 MDIChild 양식으로 포커스를 변경하면이 양식은 해당 양식 뒤에 숨겨집니다 ... 간단히 말해서 항상 맨 위를 달성하고 싶지만 이내 제한됩니다. 내 MDIChild 창 –

+0

좋아, 이제 내가 더 선명한 그림을 얻는다. 내 솔루션은 양식을 1 회 집중하여 작업해야합니다. 명확히 해 주셔서 감사합니다! – Vaibhav

+0

BlueMonk에서 설명한대로 form2의 ActivateEvent에 Activate 코드를 사용할 때 작동합니다 ...하지만이 (위) 폼의 Deactivate/Leave 이벤트를 사용할 때 작동하지 않습니다 ... –

1

모든 다른 형태의 변경이 필요하지 않는 더 나은 솔루션 : -이 : 나는 초점 활성화에 양식을 가져올 것으로 예상

fForm fFormObj = new fForm(); 
fFormObj.TopLevel = false; 
this.Controls.Add(fFormObj); 
fFormObj.Parent = this; 
fFormObj.TopMost = true; 
fFormObj.Show(); 
+0

공유해 주셔서 감사합니다. 위대한 작품 :')' – Anne

관련 문제