loading

프로그래밍/C#

C# 폼 안의 컨트롤(Control) 정렬하기(Anchor)

침착곰 2021. 4. 15. 11:50
반응형

안녕하세요

이번에는 폼 안의 컨트롤(Control)을 정렬하는 방법에 대해서 알아보겠습니다

보통 폼 안의 컨트롤은 왼쪽 위로 정렬이 되어있습니다

하지만 컨트롤을 다른 방향 오른쪽 아래, 오른쪽 위, 왼쪽 아래로도 정렬이 가능합니다

폼이 움직여도 그 폼에 맞춰진 정렬에 따라 컨트롤이 움직이게 바꿀 수 있습니다

이 기능은 C# 윈폼에서 기본적으로 제공하는 Anchor속성을 변경하기 적용할 수 있습니다.

 

1. 최종 소스

Archor.zip
0.19MB

 

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# 개발에 도움이 되셨으면 좋겠습니다

반응형
그리드형