데스크톱 응용 프로그램이 최대화되지 않도록하고 싶습니다. 그것은 어떤 방법으로 극대화 될 안 - 두 번 클릭하여 제목 표시 줄, 또는 키보드에서 Windows + 위쪽 화살표를 클릭하여 등
-> 내가 해제 MaximizeBox 및 MinimizeBox 모두.
은 -> 나는 또한 나의 승리 양식 내가 그것을 최대화됩니다 의미, 화면 왼쪽 상단으로 이동 내가 윈도우 + 위쪽 화살표를 누르면
아직 내의 WinForm의 MAXIMUMSIZE 및 MinimumSize 설정 . 이 문제가 발생하는 것을 막을 수있는 방법을 알려주십시오.Winform이 최대화되는 것을 방지 하시겠습니까?
답변
실제로 여기서는 완전히 다른 두 가지 문제가 있습니다. 물론 기능적 관점에서는 기본적으로 같지만 구현 모델 측면에서는 (Windows 자체가 자연스럽게 사용하는 것처럼) 관련이 없습니다.
다른 사람들이 대답 했으므로 MaximizeBox
속성을 false
으로 설정하여 양식이 최대화되는 것을 방지 할 수 있습니다. 이렇게하면 양식의 기본 창에서 WS_MAXIMIZEBOX
style이 제거되므로 창 관리자가 창을 최대화하지 못하게됩니다. 창 캡션 표시 줄 (최소화 상자와 닫기 상자 사이의 상자)의 최대화 상자를 비활성화하고 창/시스템 메뉴의 "최대화"옵션을 비활성화하고 잊어 버린 창을 최대화하는 다른 방법을 비활성화합니다.
그러나, 이것은 마법의 위치로 창을 드래그 화면의 가장자리를 앉아 것과 같은 Aero Snap를 호출 승리 + ↑ 키보드 바로 가기, 함께 할 수 없다.창 관리자는 버그 또는 Aero Snap의 기능으로 인해 최대화되지 않아야하는 창을 효과적으로 "최대화"할 수 있습니다. MaximizeBox
속성을 설정해도 영향을 미치지 않으므로 사용자가이 방법으로 창 크기를 변경하지 못하게하려면 창에서 Aero Snap의 효과를 비활성화해야합니다.
아쉽게도 Windows 나 프로세스별로 Aero Snap을 프로그래밍 방식으로 사용 불가능하게 설정하는 방법은 없습니다 (적어도 내 지식은 아님) (this related question 참조). 사용자가 에어로 스냅을 사용하도록 설정 한 경우, 사용자는 해당 동작을 원한다고 추측 할 수 있으며 응용 프로그램은이를 조작하지 않아야합니다. 당신이 할 수있는 유일한 일은 윈도우 크기 조정을 완전히 불가능하게하는 것입니다. WinForms에서 , FormBorderStyle.Fixed3D
또는 FormBorderStyle.FixedDialog
중 하나의 값으로 FormBorderStyle
속성을 설정하면됩니다. 여전히 다른 방식으로 창 크기를 조정하려면 수동으로 처리하는 코드를 작성해야합니다. 특히 쉬운 작업은 아닙니다.
이렇게 나는 이것이 정말로 필요한지 매우 신중히 고려하는 것이 좋습니다. 다른 모든 비 최대화 가능 윈도우는 MaximizeBox
속성을 설정하거나 UI 프레임 워크에서 동등한 작업을 수행하여이 작업을 수행하므로 Aero Snap을 통해 효과적으로 최대화 할 수 있습니다. 이 기능이 Windows의 일부인 윈도우를 포함하여 다른 모든 윈도우에서도 작동한다면 아마 잘 작동 할 것입니다.
나는 이와 비슷한 대답을 찾고 MaximizeBox를 false로 설정하면 어떤 극대화 경로를 막는 것처럼 보였다. 나는 이것이 지금과이 대답의 게시 사이에서 고쳤다 고 생각한다. 또는 나는 무엇인가 놓쳤 느냐? – Karlovsky120
양식에 MaximizeBox
이라는 속성이 있습니다 (false로 설정).
두 번째 질문과 관련하여 WinForms에서 키보드 바로 가기를 구현하는 가장 좋은 방법은 this question and it's answers을 확인하십시오.
MaximizeBox = false는 모든 창을 최대화하기 위해 Windows + 위쪽 화살표 바로 가기를 중지하지 않습니다 ... 내가 잘못하지 않으면 coz m이 내 응용 프로그램에서 같은 문제에 직면합니다 ... –
항상 Windows + 바로 가기를 사용하지 않도록 설정할 수 있습니다 또한 다른 모든 키보드 바로 가기를 사용할 수있게 만드는 데 집중하십시오. – lifetimes
작동해야하지만 작동하지 않아야합니다. 그것을 해머로 작동 시키면, https://stackoverflow.com/a/47994707/17034 –
양식의 속성 창에서 "MaximumBox"라는 False를 설정해야하는 Form 클래스의 속성이 있습니다 ... 이것은 실제로 양식이 어떤 식 으로든 최대화되는 것을 비활성화합니다 ... 또한 원하는 경우 당신이 코드 줄은 방지 할 수 있습니다 ...
이 일은 버디를 작동시키지 못합니다 .. 16 비트 DOS를 최대화하려고 할 때와 마찬가지로 창이 왼쪽 상단으로 이동합니다. 귀하의 32 비트 Windows OS에서 응용 프로그램 ... 그냥 왼쪽 위 모서리에 가서 어떤 창을 최대화 할 때처럼 움직임을 거부합니다 ... 크기는 같지만 다른 모든 속성은 동일합니다. 정상적인 창이 최대화 될 때처럼 .. 이 문제를 해결할 수있는 새로운 방법이 있습니까? –
this.FormBorderStyle = FormBorderStyle.FixedSingle;
"MinimumSize, MAXIMUMSIZE"당신의 재량에 따라 그 값을 설정하거나 MaximumSizeChanged 및 MinimumSizeChanged 이벤트에 대한 이벤트 처리기를 만드는 등의 특성으로 작업 할 수 폼의 크기를 제어 할 수 사용자가 윈도우의 크기를 재조정하지 못하게합니다.
이외에도 최대화 상자를 숨기거나 비활성화하면 요청한 내용을 따라야합니다.
은 최대화 상자가 최대화 상자가this.MinimizeBox = false;
최대화하는 경우뿐만 아니라이를 사용하고 버튼이 사라 false로 설정되어 최소화 숨기려면이
this.MaximizeBox = false;
를 사용하지 않으려면.
버디이 작업을 수행 할 수 있지만 FormBorderStyle = FormBorderStyle.None 인 사용자 지정 양식이 있습니다. 이 작업을 수행 할 다른 방법이 있습니까? –
창을 최대화하지 못하도록 'WINKEY + UP'조합을 억제 할 수 있습니다. 그 외에도 최대/최소 크기를 고정 값으로 설정합니다.이 솔루션은 상당히 더러운 것처럼 보일 수 있지만 요구 사항이 'FormBorderStyle.None'-option 인 경우 아마 가장 좋습니다. –
최소 크기 (또는 일부 크기)와 동일한 최대 크기를 설정하면 창을 전체 화면으로 전환하지 않습니다. 여전히 왼쪽 상단 모서리에 스냅되어 있지만, 적어도 여전히 윈도우이고 모양이 옳습니다. Windows가 프로그램 대신에 어리 석다는 것입니다.
당신은 설정하여 왼쪽 상단 모서리에 스냅 창을 방지 할 수 있습니다 :
private void toolbox_Move(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
}
을 형태의 이동 이벤트.
귀하의 창이나 응용 프로그램이 활성화되어있는 경우, 핫키를 등록하려고 시도 할 수 있습니다.이 단축키가 비활성화 된 경우 등록 해제하십시오. 핫키를 잡아서 추가 처리를 방지하려면 적절한 값을 반환해야합니다.
WM_ACTIVATEAPP
, WM_ACTIVATE
및 WM_NCACTIVATE
을 찾으십시오. 모든 창에 대해 Win + UP을 사용하지 않으려면 첫 번째 옵션을 사용할 수 있습니다.
- 1. Nokogiri가 문자를 이스케이프하는 것을 방지 하시겠습니까?
- 2. 안드로이드 응용 프로그램이 끊어지는 것을 방지 하시겠습니까?
- 3. 어떻게 코코아 응용 프로그램이 얼어 붙는 것을 방지 하시겠습니까?
- 4. BlackBerry Bold에서 페이지가 자동으로 확대되는 것을 방지 하시겠습니까?
- 5. 함수 반환 포인터가 범위를 벗어나는 것을 방지 하시겠습니까?
- 6. 절대 배치 된 상자가 부모 컨테이너를 벗어나는 것을 방지 하시겠습니까?
- 7. 잘못된 종료로 인해 아파치가 실행되는 것을 방지 하시겠습니까?
- 8. 특정 상태가 된 후 개체가 변경되는 것을 방지 하시겠습니까? (C#)
- 9. 라이브러리 패칭을 다루는 방법을 디버깅하는 것을 방지 하시겠습니까?
- 10. Progress 4GL을 사용하여 디버그 코드가 프로덕션으로 들어가는 것을 방지 하시겠습니까?
- 11. beforeCellEdit 이벤트를 사용하여 jqGrid가 편집 셀에 들어가는 것을 방지 하시겠습니까?
- 12. jQuery : 이벤트가 두 번 이상 연결되는 것을 방지 하시겠습니까?
- 13. 윈도우가 트릭하지 않고 MDI를 떠나는 것을 방지 하시겠습니까?
- 14. 시간 기반 복사 방지 우회를 방지 하시겠습니까?
- 15. WPF 리본 : 화면이 최대화되는 화면
- 16. Silverlight datepicker가 비활성화되는 것을 방지
- 17. 콤보가 드롭 다운되는 것을 방지
- 18. VB.Net 양식이 닫히는 것을 방지
- 19. 왜이 winform이 응답하지 않게됩니까?
- 20. SerialPort에서 Winform이 고정되었습니다. 닫습니다.
- 21. UAC 가상화를 방지 하시겠습니까?
- 22. 상속을 방지 하시겠습니까?
- 23. Win32 : 폴더 수정을 방지 하시겠습니까?
- 24. 이 설정으로 터널링을 방지 하시겠습니까?
- 25. 무거운 프로세스가 스왑 파일에 잠기는 것을 방지
- 26. SWT 창이 가로로 크기 조절되는 것을 방지
- 27. asp.net 페이지가 하위 폴더에서 실행되는 것을 방지
- 28. ajax 호출로 인해 UI가 멈추는 것을 방지
- 29. Winform이 두 번 나타나는 경우
- 30. Winform이 컨트롤 변경을 렌더링하지 않습니다.
바로 가기에 관한 두 번째 질문에 대한 또 다른 질문을 만드는 것을 고려하십시오. – emartel
나는 이것을 수행했으며 Google에서이 모든 것을 발견했습니다. 일부 속성을 false로 설정해야하며 일부 속성은 재정의해야합니다. – Pavenhimself