2014-04-01 7 views
1

우리 프로그램에 MDI를 사용하고 있습니다.C# MDI 자식 폼 - 작업 영역의 절반 크기 크기

예, 알고 있습니다. 다른 것을 사용하십시오. MDI가 좋지 않은 등입니다. 클라이언트는 MDI 스타일의 UI가 더 편합니다. 지금까지 우리는 TDI 나 SDI와 같은 것에 대한 필요성을 발견하지 못했습니다.

MDI 클라이언트의 크기를 MDI 클라이언트 영역의 크기의 절반으로 자동 조정하는 것이 좋습니다. Windows 7/8에서 윈도우를 화면의 한쪽으로 드래그 할 수있는 것과 비슷한 종류의 것으로 데스크탑의 절반을 채울 수 있도록 크기가 조절됩니다.

어떻게하면됩니까?

분명히하기 위해 도킹을 찾고있는 것이 아니며 분명히 폼의 크기를 조정하는 것은 쉽습니다. 사용자가 MDI 클라이언트 영역의 가장자리로 폼을 드래그 할 때 어떻게 잡는 지에 더 관심이 있습니다. 논리를 집중화하여 모든 형식으로 복제하지는 않습니다. 폼이 끝나는 곳의 윤곽을 보여주는 것은 즐겁습니다 (다시, Win7/8 크기 조정과 비슷합니다).

감사합니다.

답변

1

당신은 상처의 세계에 있습니다. 여기

그러나이 시작하는 방법이다 :

Form f = new Form(); 
f.ResizeEnd += f_ResizeEnd; 
f.MdiParent = this; 
f.Show(); 

void f_ResizeEnd(object sender, EventArgs e) { 
    MdiClient mc = this.Controls.OfType<MdiClient>().First(); 
    Form f = sender as Form; 
    if (f.Right >= mc.ClientSize.Width) { 
    f.SetBounds(mc.ClientSize.Width/2, 0, 
       mc.ClientSize.Width/2, mc.ClientSize.Height); 
    } 
} 
+0

감사합니다. 나는 결국 폼 이동/크기 조정 이벤트를 트래핑하는 것보다는 작업을 수행하기위한 도구 스트립 단추를 추가하기로 결정 했음에도 불구하고 이것을 upvoted했습니다. 그것은 실제로 뒷바침과 더불어 더 논리적 인 것처럼 보입니다. –