2009-10-26 8 views
3

TopMost로 설정된 상위 폼이 있고 단추를 클릭 할 때 열리는 다른 폼이 있습니다. 이 하위 폼은 또한 TopMost로 설정됩니다. 내가 가지고있는 첫 번째 문제는 아이 폼을 열었을 때, 당신이 아무것도 액세스 할 수 없기 때문에 애플리케이션이 기본적으로 멈춰 버리는 것입니다. ShowDialog()를 사용하여 자식 폼을 여는 대신 Show (this)를 사용하기로 결정했습니다. 이것은 초기 문제를 해결했지만 이제는 새로운 문제가 생겼습니다. childforms 시작 포기는 CenterParent로 설정되고 Show (this)를 사용하면 작동하지 않습니다. childforms 시작 위치를 CenterParent로 설정하는 동안 부모 폼과 상위 폼이 모두 최상위로 설정되어있는 동안 childform을 열 수있는 방법이 있습니까? 고맙습니다.C# - 2 "TopMost"양식을 처리하는 방법?

답변

3

자식 폼이 표시되는 동안 부모 폼의 TopMost 속성을 지울 수도 있습니다.

이렇게하면 양식이 가장 많아야하는 문제가 해결됩니다.

+0

좋은 생각, 나 자신을 생각 했어야 하하. – user

0

흠. To 폼을 만들었습니다. 그렇다면 TopMost = true를 둘 다 설정합니다. 처음에 버튼을 추가하고 작성했습니다. new Form2().ShowDialog();

모두 괜찮습니다. Form2는 활성 상태이며 클릭 할 수 있습니다. Form1은 ShowDialog가 호출 된 이후가 아니기 때문에

두 번째 변형이 잘 작동합니다. Form2가 화면 중앙에 열립니다.

내가 잘못 이해 한 것일 수 있습니까?

2

나는 당신과 공유 할 유용한 것을 찾았습니다. 다른 응용 프로그램에서 사람들은 당신이 Form.TopMost 속성을 사용하는 경우

form2.Owner = this; 

는 양식이 아닌 다른 모든 맨 위의 양식을 중복 것뿐만 아니라, 대신 코드를

form2.TopMost = true; 

사용 기본 폼에이 코드를 다음과 같습니다. 대신이 양식 아래에 있어야하는 상위 양식 (예 : 기본 양식)으로 Form.Owner 속성을 설정하십시오. G00d 행운 :)