WinForms에서 레이블을 중앙에 유지하려면 어떻게합니까?
에서 WinFormsa Label를 사용하여 성공, 실패 등과 같은 다른 메시지를 표시합니다.
해당 라벨을 중앙 형식으로 가운데에 배치하고 싶습니다. 레이블에 단어가 하나만 있거나 전체 문장이 있는지 여부를 중심으로 유지할 솔루션을 원합니다.
세트 Label의 AutoSize재산 False, TextAlign재산 MiddleCenter및 Dock재산에 Fill.
속성 앵커 : 없음을 설정하여이를 달성합니다.
프로그래밍 방식으로 설정하기위한 몇 가지 사소한 추가 콘텐츠 :
Label textLabel = new Label() {
AutoSize = false,
TextAlign = ContentAlignment.MiddleCenter,
Dock = DockStyle.None,
Left = 10,
Width = myDialog.Width - 10
};
Dockstyle 및 내용 정렬은 필요에 따라 다를 수 있습니다. 예를 들어 wpf 양식의 간단한 레이블에는 DockStyle.None을 사용합니다.
사용 가능한 전체 영역에 레이블을 고정하지 않으려면 TextChanged 대신 SizeChanged 이벤트를 설정하십시오. 각 문자를 변경하면 자동 크기 속성이 True로 설정된 경우 레이블의 너비 속성과 텍스트가 변경됩니다. 따라서 모든 수식을 사용하여 레이블을 중앙에 유지할 수 있습니다.
private void lblReport_SizeChanged(object sender, EventArgs e)
{
lblReport.Left = (this.ClientSize.Width - lblReport.Size.Width) / 2;
}
비슷한 것을하고 싶었지만 배경 이미지가있는 양식에서 레이블의 텍스트가 변경되었을 때이 방법으로 다시 페인트가 분명하다는 것을 알았으므로 다음을 수행했습니다. * 레이블 AutoSize를 true로 설정하고 TextAlign을 미들 센터
그런 다음 텍스트가 변경 될 때마다 (타이머를 사용하여 광산이 완료되었습니다) 다음 방법을 호출했습니다.
private Point GetPosition()
{
int y = (this.Height / 2) - (label1.Height / 2);
int x = (this.Width / 2) - (label1.Width / 2);
return new Point(x, y);
}
레이블의 Location 속성을이 반환 값으로 설정하십시오. 이렇게하면 텍스트가 변경되고 전체 화면 양식의 다시 그리기가 명확하지 않은 경우 레이블이 항상 양식의 중앙에있게됩니다.
허용 된 답변이 두 가지 이유로 나에게 효과가 없었습니다.
- 나는
BackColor그렇게 설정AutoSize = false하고Dock = Fill배경색이 전체 형태를 채우도록합니다. AutoSize레이블 텍스트가 동적이므로 어쨌든 false로 설정할 수 없습니다
대신, 단순히 폼의 너비와 레이블의 너비를 사용하여 왼쪽 오프셋을 계산했습니다.
MyLabel.Left = (this.Width - MyLabel.Width) / 2;
다음 코드 스 니펫을 시도해 볼 수 있습니다.
private Point CenterOfMenuPanel<T>(T control, int height=0) where T:Control {
Point center = new Point(
MenuPanel.Size.Width / 2 - control.Width * 2,
height != 0 ? height : MenuPanel.Size.Height / 2 - control.Height / 2);
return center;
}
정말 중심이야

참고 URL : https://stackoverflow.com/questions/4343730/how-do-i-keep-a-label-centered-in-winforms
'IT박스' 카테고리의 다른 글
| 데이터베이스에 성별 (성별) 저장 (0) | 2020.07.04 |
|---|---|
| ASP.NET에서 기본 페이지를 설정하는 방법은 무엇입니까? (0) | 2020.07.04 |
| 자바 스크립트에서 범위 만들기-이상한 구문 (0) | 2020.07.04 |
| C ++ : bool이 8 비트 인 이유는 무엇입니까? (0) | 2020.07.04 |
| 파일을 삭제하지 않고 버전 관리에서 파일을 제거하는 방법은 무엇입니까? (0) | 2020.07.04 |