.NET (Winforms)의 양식 내에서 컨트롤을 중앙에 배치합니까? [복제]
이 질문에는 이미 답변이 있습니다.
양식 내에서 고정 크기 컨트롤을 중앙에 배치하려고합니다.
관심이 없다면, 이것을하는 비 바보 같은 방법이 있습니까? 내가 정말로 원하는 것은 text-align css 속성과 비슷한 것입니다.
현재 주변 양식의 패딩 속성을 적절한 크기로 설정하고 컨트롤의 Dock 속성을 채우도록 설정하고 있습니다.
앵커를 사용하여이를 달성 할 수 있습니다 . 또는 더 정확하게는 사용하지 않습니다 .
컨트롤은 기본적으로 폼의 왼쪽 상단에 고정되어 폼 크기가 변경 될 때 폼의 왼쪽 상단에서 거리가 일정하게 유지됩니다. 컨트롤 앵커를 왼쪽 아래로 변경하면 폼의 크기를 조정할 때 컨트롤이 폼의 아래쪽과 왼쪽에서 같은 거리를 유지합니다.
앵커를 한 방향으로 끄면 크기를 조정할 때 컨트롤이 해당 방향으로 중앙에 유지됩니다.
참고 : VS2015에서 속성 창을 통해 앵커를 끄려면 없음, 없음을 입력해야 할 수 있습니다 (기본 상단, 왼쪽 대신)
myControl.Left = (this.ClientSize.Width - myControl.Width) / 2 ;
myControl.Top = (this.ClientSize.Height - myControl.Height) / 2;
양식 크기를 조정할 수 있는지 여부를 나타내지 않기 때문에 크기 조정에 신경 쓰지 않으면 쉬운 방법이 있습니다 (관리하는 경우 Mitch Wheats 솔루션 사용).
컨트롤-> 형식 (메뉴 옵션)-> 가운데 창-> 가로 또는 세로를 선택하십시오.
이 작업을 수행하는 좋은 방법을 찾았으며 여러 컨트롤에서 작동합니다. 3 개의 열이있는 TableLayout을 추가하십시오. 가운데 기둥을 절대 크기로 만드십시오 (그러나 필요한 공간은 얼마입니까). 두 개의 외부 열을 100 %로 설정하십시오. 가운데 열에 패널을 추가하고 필요한 컨트롤을 추가하고 원하는 위치에 배치하십시오. 해당 센터 패널은 이제 양식의 중앙에 유지됩니다.
다른 컨테이너에서 패널 o의 버튼을 가운데에 놓으려면 다음 단계를 수행하십시오.
- 디자인 타임에 위치를 설정하십시오
- 버튼의 앵커 속성으로 이동 하여이 값을 다음 이미지로 설정하십시오.
중앙에 놓으려는 컨트롤을 패널 내부에 놓고 왼쪽 및 오른쪽 패딩 값을 기본값보다 큰 값으로 설정할 수 있습니다. 이들이 동일하고 컨트롤이 패널 측면에 고정되어 있으면 해당 패널의 중앙에 나타납니다. 그런 다음 필요에 따라 컨테이너 패널을 상위에 고정 할 수 있습니다.
모든 컨트롤을 패널에 넣은 다음 패널을 양식의 중앙으로 이동시키는 코드를 작성할 수 있습니다.
panelMain.Location =
new Point(ClientSize.Width / 2 - panelMain.Size.Width / 2,
ClientSize.Height / 2 - panelMain.Size.Height / 2);
panelMain.Anchor = AnchorStyles.None;
그것은 눈알을 포함합니다 (잘 계산하고 계산할 수 있다고 생각합니다).하지만 컨트롤을 폼에 삽입 한 다음 앵커를 제거하십시오 (앵커 = 없음).
또한 다른 컨트롤의 중심에 정렬하려면 다음을 수행하십시오.
//The "ctrlParent" is the one on which you want to align "ctrlToCenter".
//"ctrlParent" can be your "form name" or any other control such as "grid name" and etc.
ctrlToCenter.Parent = ctrlParent;
ctrlToCenter.Left = (ctrlToCenter.Parent.Width - ctrlToCenter.Width) / 2;
ctrlToCenter.Top = (ctrlToCenter.Parent.Height - ctrlToCenter.Height) / 2;
참고 URL : https://stackoverflow.com/questions/491399/centering-controls-within-a-form-in-net-winforms
'IT story' 카테고리의 다른 글
div 내부의 요소로 스크롤하는 방법은 무엇입니까? (0) | 2020.07.03 |
---|---|
루비에서 UTC 타임 스탬프를 얻는 방법? (0) | 2020.07.03 |
JavaScript에서 파일을 base64로 변환하는 방법? (0) | 2020.07.03 |
파이썬에서 현재 시간에 시간을 추가하는 방법 (0) | 2020.07.02 |
특정 날짜에 MongoDB / Mongoose 쿼리? (0) | 2020.07.02 |