2011-12-15 3 views
3

WinForms 응용 프로그램 내부에서 화면 해상도를 기반으로 일치시키고 창의 크기를 최대화하고 크기를 조정하기 위해 크기 조정 컨트롤을 처리하는 가장 좋은 방법은 무엇입니까? 3 열이 이렇게 설정되어 있습니다. 각 열의 LABEL TEXTBOX. 6 열로 계산할 수 있습니다. 오른쪽에 고정하려고 시도했지만 문제는 거기에 1 열의 텍스트 상자가 다음 2 열이 겹칠 것입니다. 나는 또한 도킹을 시도했지만 그 트릭을하지 않는 것 같습니다. 이 작업을 수행하는 쉬운 방법이 있습니까?해상도를 기준으로 컨트롤의 크기를 조정하려면 어떻게해야합니까?

답변

3

TL : DR : 크기 조정 논리를 수동으로 코딩하지 않고는 사용할 수 없습니다. 참고로, 당신은 아마 이것을 시도해서는 안됩니다.

전통적인 WinForms에서는 자신 만의 솔루션을 사용하지 않고도 내 지식에 자동으로 접근 할 수있는 방법이 없습니다. Sean87suggestedAutoScaleMode 속성이지만 자동으로 처리되지만 해상도에 따라 자동 크기 조정을 지원하지 않습니다. Windows 또는 DPI 설정의 글꼴 크기 설정에 따라 크기 조정 옵션을 제공합니다. 이들 중 어느 것도 단순히 화면 해상도를 변경할 때 직접 변경되지 않으며 솔직히 대부분의 일반 사용자 (심지어 고급 사용자 일지라도)는 DPI 또는 글꼴 크기 설정을 결코 수정하지 않을 것입니다.

게다가 기본 사용자 관점에서 화면 해상도를 높이는 데 더 많은 가상 데스크톱 공간을 두어 응용 프로그램 창을 배치하는 것이 사실입니다. 대부분의 모니터는 이제 LCD 기반이므로 native resolutions CRT 과거의 것들을 중심으로 이것을 바꾼다. 그러나 새롭고 더 큰 모니터를 사는 행위는 일반 사용자가이 가상 화면 공간을 늘려서 화면에 더 많은 창을 동시에 볼 수있게합니다. 화면 해상도와 항상 같은 상대 크기를 유지하는 응용 프로그램은 우리에게도 고급 개발자 사용자를 포함하여 대부분의 사용자의 기대에 반하는 생각을하는 경우가 드물 것입니다.

일반적으로 창 크기를 조정하면 응용 프로그램을 지능적으로 유용하게 조정할 수 있도록 코드를 작성해야하지만 일반적으로 사용자가 컴퓨터와 환경 설정대로 관리하도록 사용자에게 맡깁니다 (" 내 집, 내 규칙 "원칙). 이것은 대부분의 (모든?) 응용 프로그램이 사용자가 직접 조작 할 때를 제외하고 (창 프레임 등을 드래그하여) 창 위치를 변경하지 않는 이유이기도합니다. 실제로이 모든 것은 Microsoft가 해상도를 기반으로하는 자동 크기 조정 규칙을 포함하도록 이 아닌을 선택한 이유를 설명합니다.

0

양식의 AutoScaleMode 및 각 컨트롤의 자동 크기 속성을 변경할 수 있습니다. 그리고 splitcontainer 또는 패널을 사용하여 열을 구성 할 수도 있습니다.

1

"열"의 의미를 정의하지 마십시오. 일반적으로 TableLayoutPanel을 사용하고 각 "셀"안에 컨트롤의 앵커를 설정해야합니다.

관련 문제