문제

사용자가 Windows Form을 전체 화면으로 최대화하는 것을 방지하기 위해 최대화 버튼을 비활성화했습니다.그러나 나는 사용자가 양식을 '복원'하도록 할 수 있기를 원합니다.복원 버튼을 클릭하면 더 작고 축소된 다른 형태가 표시되기를 원합니다. 그러면 원래 형태로 다시 사용할 수 있는 최대화 버튼이 표시됩니다.

이를 수행할 수 있는 방법이 있습니까?

감사해요.

편집하다:당신은 이해하지 못합니다. 사용자가 양식 크기를 조정하는 것을 막지는 않습니다.무슨 일이 일어나고 있는지 복원 버튼을 클릭하면 양식이 숨겨지고 컨트롤이 적은 새 양식이 열립니다.더 작은 양식에서 최대화를 클릭하면 원래 양식으로 돌아갑니다.

도움이 되었습니까?

해결책

나는 직장에서 이와 비슷한 문제를 보았고 내가 찾을 수 있는 유일한 해결책은 문서화되지 않은 창 스타일을 설정하는 것과 관련이 있었지만 나는 그렇게 하고 싶지 않았습니다.

따라서 문제에 대한 가장 좋은 해결책은 현재 최소화/최대화/복원 버튼을 숨기고 일부 ownerdraw 또는 기타 명령을 사용하여 자신만의 버튼을 추가하는 것입니다.

사용자 상호 작용의 관점에서 이것을 보면 최소화/최대화/복원 버튼이 다른 모든 응용 프로그램에서와 마찬가지로 응용 프로그램에서도 정확히 동일한 작업을 수행하기를 원합니다.해당 기능을 재정의하면 사용자에게 혼란을 줄 수 있으므로 제목 표시줄이나 이 기능을 수행하는 인터페이스의 다른 곳에 다른 버튼을 만드는 것이 좋습니다.

다른 팁

FWIW, 정답은 양식을 올바르게 크기로 조정하여 모든 창 크기에 적응하고 사용자를 바로 보는 것에 제한하지 않도록하는 것입니다. 당신의 표시 당신의 결의 및 당신의 글꼴 크기. 소개 불가능한 창은 응용 프로그램에서 내가 겪는 가장 성가신 것 중 하나입니다 (Windows 자체는 가득 차 있습니다).

최대 규모와 최소 크기를 설정하고 최대화 버튼을 사용하여 이러한 종류의 효과를 얻을 수 있습니다.

최근에 비슷한 상황이 있었고 UI 디자인 관점에서 Windows Media Player에서 좋은 예를 찾았습니다. 최소화, 최대화 및 복원 버튼이 그대로 유지되며 오른쪽 하단에 "Compact Mode로 전환"의 별도의 버튼이 있습니다. 미니/컴팩트 모드에서 동일한 버튼이 "전체 모드로 전환"으로 전환합니다. 또 다른 대안적인 예는 표준 최소화 버튼의 왼쪽에 추가 시스템 아이콘 버튼이있는 Skype입니다.

(만약 내가 특권을 가지고 있다면, 나는 이것을 Daemin의 받아 들여진 답변에 추가하기 위해 의견을 제시하는 것을 선호했을 것입니다.

양식이 해고된다 Resize 부모 양식이 더 이상 없는지 확인할 수있는 이벤트 FormWindowState.Maximized. 그렇지 않은 경우, 자녀 양식을 열고 부모를 숨길 수 있습니다.

이를 반전시키기 위해, 당신은 그것을 숨기거나 처분함으로써 자녀 양식을 '최대화'한 다음, 머리를 벗어나고 부모 양식을 다음으로 설정할 수 있습니다. FormWindowState.Maximized.

이 방법으로 볼 수있는 유일한 문제는 Resize 양식이 최대 상태에 도달하기 전에 이벤트가 여러 번 발사 될 수 있습니다. 양식이 현재 상태에서 원하는 상태로 이동할 때까지 이들을 무시하기 위해 플래그가 필요할 수 있으며, 이는 무한 루프를 유발할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top