2010-02-08 3 views
1

사용자 입력을 몇 분간 요청하는 작은 앱이 있습니다. 응용 프로그램은 모달 팝업을 생성하고 사용자 입력을 기다리지 만 응용 프로그램이 다른 프로그램으로 바둑판 식 배열되면 대화 상자가 화면의 다른 위치에 무작위로 나타납니다.응용 프로그램 바둑판 식 배열시 모달 대화 상자 양식이 부모 중심에 없음

생성자의 위치를 ​​CenterParent로 설정했는데 작동하지 않습니다. 내가 여기서 뭔가를 놓치고 있니?

+0

대화 상자의 ShowInTaskBar = false로 사용되는 양식을 설정 한 경우 : 대화 상자의 고화질 위치를 재현 할 수 있습니다. 응용 프로그램을 시작합니다 (몇 개의 다른 창이 열립니다). 첫 번째 대화 상자가 표시되기 전에, TaskBar를 클릭하십시오 : 'Show Side Side by Side'를 선택하십시오. 메인 폼의 'ShowInTaskBar = false'설정에 대해 말하면 "해킹"이 아니라 "해법"입니다. 표준 Windows 양식에 위배되는 프로그래밍 지침을 위반합니다. 좋은 이유. 다른 솔루션을보고 싶다면 알려주세요. 당신이 현재의 기술에 행복하다면 : 대단히 :) – BillW

+0

나는 그가 메인 폼을 의미한다고 생각하지 않지만, 중심에 놓이게 될 필요가있는 아이 폼을 생각합니다. 계단식을 클릭하여 창 순서를 변경하면 (자문위원의 의견으로는) 자식 창을 재정렬하지 않아야합니다. – Abel

답변

3

표시 명령에서 부모를 올바르게 설정하는 것을 잊었을 수 있습니까? 그것은 당신이 중심에 놓기를 원하는 형태로 설정되어야합니다.

yourFormInstance.Show(parentForm); 

EDIT : asker with solution. 그는 Tile Windows를 클릭하면 창을 재구성한다는 것을 의미했습니다. 이미 창을 표시 한 후 창을 재구성합니다. 해결책 : myForm.ShowInTaskbar = false;.

+0

그래, 사용 했어 : MyDialog.Show (this); 작동하지 않습니다. –

+2

수정 됨. 작업 표시 줄의 표시를 false로 설정하면 작동합니다. –

+0

아하, 의미 : 바둑판 식 배열이 선택된 후 모든 창이 재구성됩니다. 나는 네가 의미한다고 생각했다. 타일로 닦은 다음 창문을 열어 라. 그러나 실제로 : 바둑판 식 배열은 당신이 제어 할 수없는 Windows의 기능입니다 (작업 표시 줄에 보이지 않는 한). – Abel