[C#기초] 17. 폼 분활
INDEX
패널
개요
- 기능
- 컨트롤을 담당하는 역할
- 패널이 이동하면 패널 안의 컨트롤도 같이 이동
- 코드에는 영향을 미치지 않음 -> 관리 목적
- 종류
- TableLayoutPanel : 행과 열로 나눈 셀
- FlowLayoutPanel : 자동 배치
스플릿터
개요
-
컨트롤을 기준으로 폼의 경계를 나누고자 하는 컨트롤
-
스플릿터에 의해 컨트롤의 크기가 변경
-
패널과 스플릿터의 차이점
- 패널 : 이동만 제공
- 스플릿터 : 크기만 변경 가능
스플릿터 사용방법
- 스플릿터 사용은 절차를 따라서 진행해야 한다
- 컨트롤을 올려 놓고 Dock 설정
- Splitter 올려 놓고 컨트롤과 같은 Dock 설정
- 컨트롤과 Splitter 연결
SplitterContainer 개요
- 미리 영역을 나누고 컨트롤을 배치할 수 있는 컨트롤
- Splitter와는 사용방법 순서가 반대
- Splitter와 같은 역할
SplitterContainer 사용 방법
-
임의의 컨트롤을 올려 놓고 Dock을 Fill로 설정하기
- 이미 나뉜 구조 위에 올라가므로 Dock을 Left,Right가 아닌 Fill로 설정
스크롤
개요
- ScrollalbeControl로부터 파생된 클래스가 폼 클래스
- 자체적으로 화면 버퍼를 가짐
ScrollableControl 사용방법
-
AutoScrollMinSize 속성
- 스크롤의 최소 크기
- 폼이 스크롤 최소 크기보다 작으면 스크롤 출현
-
AutoScrollPosition 속성
-
현재 스크롤된 양
- 음수값을 가짐
스크롤 사용 예제 코드
Image myImage; private void Form1_Load(object sender, EventArgs e) { myImage =Image.FromFile("test.png?raw=true"); this.AutoScrollMinSize = myImage.Size; //스크롤바 출현 } private void Form1_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawImage(myImage, AutoScrollPosition.X, AutoScrollPostion.Y); }
MDI
Multi Document Interface
개요
-
하나의 하나의 메인폼에서 여러개의 응용프로그램을 실행하게 해줌
-
폼의 형태
-
SDI : 단일 폼
-
MDI : 다중 폼 -> 자식 폼 존재
-
설정방법
-
메인폼의 IsMdiCOntainer를 true로 설정
-
자식폼 생성을 위해 MenuStrip 설정
-
MenuStrip 속성에서 MdiWindowListItem속성에서 윈도우 ToolStripMenuItem 선택 or 비선택 (선택된 메뉴 리스트 출력 용도)
-
폼 추가하기
-
폼 생성할 때는 모델리스형으로 생성하기
-
메인 폼을 자식 폼에 설정하기
- Form.MdiParent = this;
-
메뉴에 따라 출력하기
- Form.Show()