C# 폼 안의 컨트롤(Control) 정렬하기(Anchor)
안녕하세요
이번에는 폼 안의 컨트롤(Control)을 정렬하는 방법에 대해서 알아보겠습니다
보통 폼 안의 컨트롤은 왼쪽 위로 정렬이 되어있습니다
하지만 컨트롤을 다른 방향 오른쪽 아래, 오른쪽 위, 왼쪽 아래로도 정렬이 가능합니다
폼이 움직여도 그 폼에 맞춰진 정렬에 따라 컨트롤이 움직이게 바꿀 수 있습니다
이 기능은 C# 윈폼에서 기본적으로 제공하는 Anchor속성을 변경하기 적용할 수 있습니다.
1. 최종 소스
2. 디자인
5가지 정렬 방법에 대해서 알아볼 예정입니다
윈폼 디자인에 아래 이미지와 같이 버튼을 붙여줍니다
3. 디자인 속성 변경
버튼을 클릭한 후 Anchor의 속성을 변경합니다
버튼에 써져있는대로 Anchor의 속성을 왼쪽 위, 왼쪽 아래, 오른쪽 위, 오른쪽 아래로 변경합니다
가운데 버튼은 Anchor속성을 None으로 변경합니다
-> Anchor 속성을 아무것도 선택하지 않으면 None으로 세팅이 됩니다
4. 소스에서 Anchor 변경
디자인 속성이 아닌 소스에서 속성을 변경할 수 있습니다
폼을 로드할 경우 Anchor 속성을 변경하도록 구현했습니다
하단의 소스를 보면 button1.Anchor = (AnchorStyles.방향) 으로 Anchor 속성을 수정할 수 있습니다
하지만 Anchor 속성으로 가운데 정렬은 불가능합니다
button5.Left = (this.ClientSize.Width - button5.Width) / 2;
button5.Top = (this.ClientSize.Height - button5.Height) / 2;
이렇게 하드코딩으로 구현을 하였습니다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Archor
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// 폼 로드 시 이벤트
private void Form1_Load(object sender, EventArgs e)
{
// 버튼1은 왼쪽 위에 붙인다.
button1.Anchor = (AnchorStyles.Left | AnchorStyles.Top);
// 버튼2은 왼쪽 아래에 붙인다.
button2.Anchor = (AnchorStyles.Left | AnchorStyles.Bottom);
// 버튼3은 오른쪽 아래에 붙인다.
button3.Anchor = (AnchorStyles.Right | AnchorStyles.Bottom);
// 버튼4은 오른쪽 위에 붙인다.
button4.Anchor = (AnchorStyles.Right | AnchorStyles.Top);
// 버튼5은 가운데정렬
button5.Left = (this.ClientSize.Width - button5.Width) / 2;
button5.Top = (this.ClientSize.Height - button5.Height) / 2;
}
}
}
|
cs |
5. 최종 결과
밑의 이미지처럼 폼의 크기를 늘였다 줄였다하면 버튼도 같이 움직이는 것을 확인할 수 있습니다.


여기까지 Control의 방향을 정렬하는 방법에 대해서 알아보았습니다
C# 개발에 도움이 되셨으면 좋겠습니다