loading

프로그래밍/C#

C# 스크롤바(AutoScroll) 활성화하기

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

안녕하세요

C#의 스크롤바를 활성화하는 방법에 대해서 알아보겠습니다.

프로그램에서 판넬의 크기를 바꿀 수 있는 경우 안의 내용이 많아서 판넬에 다 채우지 못 하는 경우 스크롤바로 화면을 이동시키며 보여줘야할 때가 있습니다.

그 경우 스크롤바를 사용하면 판넬이 안의 내용보다 더 작아지는 경우 스크롤바를 사용해 내용을 모두 볼 수가 있습니다.

디자인 속성에서 변경할 수 있는 스크롤바 관련 속성은 AutoScroll, AutoScrollMargin, AutoScrollMinSize가 있습니다.

이 3개의 속성에 대해서 알아보겠습니다.

 

1. 속성에서 수정하기

 디자인의 속성에서 AutoScroll 관련 값을 주는 방법입니다

Panel을 클릭하고 레이아웃 속성을 확인하면 AutoScroll, AutoScrollMargin, AutoScrollMinSize를 수정할 수 있습니다

 

2. 소스에서 수정하기

 속성이 아닌 폼을 로드하는 경우 소스에서 스크롤바의 속성을 수정을 할 수도 있습니다.

하단의 소스에서 panel을 호출한 후 속성값을 직접 변경합니다.

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
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 AutoScroll
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        // 폼 로드 시 이벤트
        private void Form1_Load(object sender, EventArgs e)
        {
            // AutoScroll을 변경한다.
            panel1.AutoScroll = true;
 
            // AutoScrollMargin을 변경한다.
            panel1.AutoScrollMargin = new System.Drawing.Size(100100);
 
            // AutoScrollMinSize 변경한다.
            panel1.AutoScrollMinSize = new System.Drawing.Size(100100);
        }
    }
}
 
cs

최종소스

AutoScroll.zip
0.19MB

 

 

3. AutoScroll

 AutoScroll을 true로 변경하면 판넬이 안의 내용보다 작아지면 자동으로 스크롤바가 생성이 되도록합니다.

  false로 변경하면 판넬이 안의 내용보다 작아져도 스크롤바가 생성이 되지 않습니다.

 

4. AutoScrollMargin

 AutoScrollMargin의 값을 주면 안의 내용보다 판넬이 작아지기 전에 Margin의 크기만큼 미리 스크롤바를 생성해줍니다.

밑의 이미지처럼 Margin을 주게되면 미리 스크롤바를 생성하게 됩니다.

 

5. AutoScrollMinSize

 AutoScrollMinSize를 설정하면 판넬이 MinSize만큼 줄어들면 안의 내용보다 작아지지 않아도 스크롤바를 생성하게 됩니다.

밑의 화면처럼 아무것도 없는 화면에 스크롤바가 생성된 것을 볼 수 있습니다.

 

여기까지 AutoScroll 관련 속성에 대해서 알아보았습니다

AutoScrollMargin, AutoScrollMinSize는 자주쓰는 속성이 아니지만 AutoScroll속성은 자주 쓰이는 속성이므로 알아두면 좋을 것 같습니다

C# 개발에 도움이 되셨으면 좋겠습니다

반응형
그리드형