VB.NET 2008/VB - 컨트롤

컨트롤 레이아웃 - 컨트롤의 정렬

본클라쓰 2011. 4. 23. 09:52

 

컨트롤을 여러 가지 방법으로 폼에 배치하고 조작하여 직관적이면서 편리한 사용자 인터페이스를 만들 수 있다.

 

런타임에 크기를 조정할 수 있는 폼을 디자인하는 경우 폼의 컨트롤은 크기 및 위치가 적절하게 조정되어야 한다. Windows Forms 컨트롤의 Anchor 속성을 사용하면 폼에 따라 컨트롤의 크기를 동적으로 조정할 수 있다.

 

Anchor 속성은 컨트롤에 대한 앵커 위치를 정의한다. 컨트롤을 폼에 고정하면 폼의 크기를 조정할 때 컨트롤과 앵커 위치 사이의 간격이 일정하게 유지된다. 예를 들어 폼의 왼쪽, 오른쪽 및 아래쪽 가장자리에 TextBox 컨트롤을 고정한 경우 폼의 크기를 조정할 때 폼의 오른쪽 가장자리 및 왼쪽 가장자리와의 거리가 동일하게 유지되도록 TextBox 컨트롤의 가로 크기가 조정된다. 컨트롤을 폼에 고정하지 않으면 폼의 크기를 조정할 때 폼의 가장자리를 기준으로 한 컨트롤의 위치가 변경된다.

 

 

폼의 가장자리에 컨트롤을 도킹하거나 컨트롤의 컨테이너(폼 또는 컨테이너 컨트롤)에 컨트롤을 채울 수 있다. 예를 들어 Windows 탐색기는 TreeView 컨트롤을 창의 왼쪽에 도킹하고 ListView 컨트롤을 창의 오른쪽에 도킹한다. 표시할 수 있는 모든 Windows Forms 컨트롤은 Dock 속성을 사용하여 도킹 모드를 정의할 수 있다.

 

 

복잡한 사용자 인터페이스를 만들거나 MDI(다중 문서 인터페이스) 폼을 사용하는 경우 컨트롤과 자식 폼을 모두 계층화하면 더욱 복잡한 UI를 만들 수 있다. 그룹의 컨텍스트에서 컨트롤과 창을 이동하고 추적하려면 Z 순서를 조작한다. Z 순서는 폼의 Z축(깊이)을 따라 폼의 컨트롤을 시각적으로 계층화한 것이다. Z 순서의 맨 위에 있는 창은 다른 모든 창 위에 겹쳐진다. 또한 다른 모든 창은 Z 순서의 맨 아래에 있는 창 위에 겹쳐진다.

 

BringToFront SendToBack 메서드를 사용하여 컨트롤의 Z 순서를 조작할 수 있다.

 

 

컨트롤에서 탭 순서는 사용자가 tab 키를 눌렀을 때 한 컨트롤에서 다른 컨트롤로 포커스가 이동되는 순서이다. 각 폼은 고유한 탭 순서를 가지고 있다. 기본적으로 탭 순서는 컨트롤을 만든 순서와 같으며 탭 순서 번호는 0부터 시작한다.

 

컨트롤의 탭 순서 값은 0보다 크거나 같은 값으로 설정할 수 있다. 값이 중복될 경우에는 두 컨트롤의 Z 순서가 확인되어 맨 위에 있는 컨트롤이 첫 번째 탭으로 구성된다. Z 순서는 Z축(깊이)을 따라 폼의 컨트롤을 시각적으로 계층화한 것이다.

 

TabIndex 속성을 사용하여 속성 창에서 탭 순서를 설정할 수 있다. 컨트롤의 TabIndex 속성은 탭 순서 상에 지정될 위치를 결정한다. 기본적으로 처음 그린 컨트롤의 TabIndex 값은 0으로 지정되고 두 번째 컨트롤의 TabIndex 값은 1로 지정되며 나머지 컨트롤에도 같은 방식으로 지정된다.

 

또한 기본적으로 GroupBox 컨트롤은 정수로 설정된 고유한 TabIndex 값을 가진다. GroupBox 컨트롤 자체는 런타임에 포커스를 받을 수 없다. 따라서 GroupBox 컨트롤에 포함된 각 컨트롤은 .0부터 시작하는 고유한 10진수 TabIndex 값을 가진다. 기본적으로 GroupBox 컨트롤의 TabIndex 값이 증가하면 여기에 포함된 컨트롤의 값도 이에 따라 적절하게 증가한다.

 

마지막으로, 폼에 있는 특정 컨트롤의 탭 순서를 건너 뛸 수 있다. 대개 런타임에 Tab 키를 연속적으로 누르면 탭 순서대로 각 컨트롤이 선택된다. TabStop 속성을 False로 설정하면 폼의 탭 순서에서 특정 컨트롤을 건너 뛸 수 있다.

 

 

Padding, Margins 및 AutoSize 속성을 사용하여 Windows Forms 컨트롤의 레이아웃을 지정할 수 있다.

 

많은 응용 프로그램에 있어 폼에 컨트롤을 정확하게 배치하는 작업은 매우 중요하다. Windows Forms 디자이너에서는 이러한 작업을 위한 여러 가지 레이아웃 도구를 제공한다. 가장 중요한 세 가지 속성은 Margin, Padding 및 Autosize 속성이며, 이들 속성은 모든 Windows Forms 컨트롤에 있다.

 

Margin 속성은 컨트롤 테두리에서 지정된 거리에 다른 컨트롤이 위치하도록 컨트롤 주위의 공간을 정의한다.

 

Padding 속성은 컨트롤 테두리에서 지정된 거리에 컨트롤 내용(예: 해당 Text 속성 값)이 위치하도록 컨트롤 내부 공간을 정의한다.

 

다음 그림에서는 컨트롤의 Padding 및 Margin 속성을 보여준다.

 

그림출처 ) http://msdn.microsoft.com/ko-kr/library/3z3f9e8b(v=VS.90).aspx

 

 

AutoSize 속성을 설정하면 컨트롤은 컨트롤의 내용에 맞게 자체적으로 크기를 자동 조정한다. 이 경우 해당 컨트롤의 원래 Size 속성 값보다 작게 크기가 조정되지는 않으며 해당 컨트롤의 Padding 속성 값을 고려한다.