2011-09-25 2 views
0

현재 사용자가 기본 폼의 오른쪽에 직접 배치하려는 새 대화 상자를 열 수있는 메뉴 단추가 있습니다. 사용자는 원하는대로 대화 상자를 열 수 있지만 열 때 첫 번째 대화 상자 (있는 경우) 위에 계단식으로 표시하려고합니다. MdiLayout을 사용하여 유사한 작업을 수행하는 방법을 보았습니다. 그러나 이는 일반적인 대화 상자에만 해당됩니다.C# Windows는 계단식 창을 형성합니다

답변

2

열려있는 모든 대화 상자를 반복하면서 각 창 위치를 설정 하시겠습니까? 첫 번째는 내가 지정한 위치에서 열리고 다른 모든 약간 표시됩니다 있도록

this.Location = new Point(x,y); 

또는

int prevHeight =0; 
foreach (Form f in this.OwnedForms) 
{ 
x += 5; 
y += prevHeight; 
f.Location = new Point(x, y); 
prevHeight += f.Height; 
} 
+0

는 것은, 내가 원하는 그들에게 서로의 상단에 직접 열 수 있다는 것입니다 아래쪽으로, 그리고 오른쪽으로는 특정 윈도우 동작과 같은 특정 윈도우가 있습니다. –

+0

@ Jesus 나는 위치를 증가시키는 법을 보여주기 위해 편집했다. –

+0

나는 이것을 작성한 이후로 (내가 마지막으로 열린 창을 저장하여 반복 할 필요가 없도록) 작성한 이후에이 작업을 수행하는 비 hackish 방법이 있는지 확인하려고 시도했다. Windows는 Mdi 캐스케이드 및 기본 양식의 캐스케이드를 지원하지만 사용자 정의 위치가있는 양식의 경우 표시되지 않습니다. –

관련 문제