1
나는 크기와 화면의 크기에 따라 폼의 최대 크기를 변경하고 출력/콘솔을 통해 결과를 로깅 오전 :C# 양식 크기 (this.Size)가 양식 최대 크기 (this.MaximumSize)보다 큰 이유는 무엇입니까?
Screen scr = Screen.GetWorkingArea(this);
this.MaximumSize = new System.Drawing.Size(scr.Width, scr.Height);
this.Size = new System.Drawing.Size(scr.Width, scr.Height);
Console.WriteLine(this.Size + " " + this.MaximumSize);
그러나, 나는 이해가되지 않습니다 얻을 출력 (첫 번째 출력입니다 . this.Size
제 2 출력)를 this.MaximumSize
이다
{Width=1680, Height=1050} {Width=1680, Height=1010}
어떻게 폼 크기는 최대 크기보다 큰 것으로입니까?
편집 1 :scr
대신 Screen scr
을 입력하는 것을 잊어 버립니다.
이 코드의 위치는 매우 중요합니다. 그러나 당신이 너무 일찍 그렇게하고 있다는 높은 확률. 어느 시점에서 실제로 폼 크기를 설정하지 않고 있지만 Winforms는 ClientSize에 대해 많은 관심을 가지고 있습니다. 실제 외부 양식 크기는 테두리 및 제목 표시 줄의 크기에 따라 다릅니다. 특히 후자는 사용자 선호도에 크게 의존합니다. 실제 크기는 창을 만들 때 결정됩니다.이 시점에서 LoadSize 이벤트를 사용하는 몇 가지 좋은 이유 중 하나 인 MaximumSize가 사용됩니다. –
@HansPassant 최대화 및 닫기를 최소화하기 위해 버튼을 사용하여 사용자 정의 양식을 만들었습니다. 이 경우 폼의 크기를 트리거하기 위해 클릭 이벤트를 사용했습니다. –
물론 그렇게 할 것입니다. 대상 크기는 창에 표준 크롬이 있다고 가정하고 ClientSize에서 계산됩니다. 창을 실제로 만들면 정렬됩니다. –