티스토리 뷰

728x90

사실 툴바(Toolbars), 상태바(StatusBars)와 같은 컨트롤은 닷넷 2.0까지의 이야기고 닷넷2.0 이후로는 툴스트립(ToolStrip), 상태스트립(StatusStrip)이라는 이름으로 컨트롤을 제공하고 있습니다. 


툴스트립은 기본적으로 상단으로 붙고 상태스트립은 하단으로 붙도록 .Dock 속성이 TopBottom으로 기본 설정됩니다. 물론 이 위치는 Dock 속성을 통해서 변경할 수 있습니다. 그런데 닷넷이 제공하고 있는 툴스트립과 상태스트립의 기능을 충분히 활용하려면 툴스트립컨테이너(ToolStripContainer)라는 컨트롤을 활용할 필요가 있습니다.


툴스트립컨테이너를 사용하면 프로그램 실행중에 사용자로 하여금 툴스트립을 끌어다놓기로 위치를 자유롭게 변경할 수 있도록 해줍니다. 위의 예제는 툴스트립컨테이너(ToolStripContainer)를 도구 상자에서 추가한 다음 Dock의 속성을 Fill로 해서 윈도우 폼의 전체 크기에 자동으로 따라가도록 한 다음 상단에 툴스트립 한개, 좌측에 툴스트립 한개, 하단에 상태 스트립을 추가한 모습입니다. 툴스트립컨테이너는 상하좌우와 중앙 총 5개의 판넬로 구성되고 각 판넬을 선택해서 적절할 툴스트립을 배치할 수 있습니다. TopToolStripPanel, BottomToolStripPanel, LeftToolStripPanel, RightToolStripPanel은 보여지는 툴스트립이 없으면 해당 영역은 표시되지 않고 각 툴스트립은 상하좌우에 있는 이 영역들로 위치를 자유롭게 이동할 수 있습니다. 한 영역에 여러개의 툴스트립이 들어가는 것도 툴스트립컨테이너 컨트롤이 알아서 배치합니다. 디자이너에서 각 영역을 보이기/숨기기 하려면 위의 그림에서 적색 원으로 표시한 버튼을 활용하면 해당 영역을 보이기/숨기기 할 수 있습니다. 일반적인 컨트롤들은 중앙에 있는 ContentPanel에 배치해서 작성하면 됩니다. 아래의 그림은 툴스트립컨테이너를 기반으로 실행중에 툴스트립의 위치를 변경한 3가지 예제입니다. 위치에 따라 툴스트립의 모양이나 배치가 자동으로 조정되는 것을 확인할 수 있습니다.


툴스트립에 적용할 수 있는 컨트롤들은 아래의 그림과 같이 버튼, 레이블, 드롭다운버튼, 텍스트박스등 다양한 컨트롤을 적용할 수 있습니다.


툴스트립에 컨트롤을 추가할 때는 위의 그림에서 적색원으로 표시한 드롭다운 버튼을 클릭하고 원한는 컨트롤을 추가하면 됩니다. 추가한 컨트롤의 개별 위치를 이동하려면 마우스로 끌어다가 원하는 위치에 놓으면 됩니다. 삭제 및 기타 작업은 개별 컨트롤을 우측마우스로 선택하여 팝업메뉴를 통해 추가 기능을 수행할 수 있습니다. 아래의 그림은 툴스트립에 각 컨트롤을 적용한 예제입니다.


툴스트립의 버튼과 드롭다운버튼은 기본적으로는 이미지만 표시하는데 표시 방식은 Image, Text, ImageAndText 3가지로 .DisplayStyle 속성으로 변경할 수 있으며 Text, TextAlign, TextDirection, TextImageRelation등의 속성을 통해서 텍스트의 내용과 표시 방식을 지정할 수 있습니다. 버튼 및 기타 컨트롤에 대한 처리는 해당 컨트롤의 연관 이벤트 처리 방식에 준해서 처리하면 됩니다. 드롭다운 버튼의 메뉴에 대한 처리 루틴도 마찬가지로 흥미로운 것은 한글 메뉴인 경우 메뉴 선택시 처리할 이벤트 처리 루틴의 이름도 아래와 같이 한글이 그대로 온다는 점입니다. 물론 정상처리됩니다.

    Private Sub 열기ToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) _
             Handles 열기ToolStripMenuItem.Click
        Label1.Text = "clicked"
    End Sub



상태스트립의 사용방식은 툴스트립과 유사합니다. 위의 그림처럼 상태스트립을 선택한 상태에서 그림의 적색 원으로 표시한 드롭다운 버튼을 클릭해서 레이블이나 툴스트립에서 사용한것과 같은 드롭다운버튼을 추가할 수 있습니다. 상태레이블에 IsLink 속성을 True로 설정하면 레이블을 웹링크처럼 동작시킵니다. 레이블에 이비지도 표시할 수 있으며 Spring 속성을 True로 설정하면 남은 공간을 채우도록 지정할 수 있습니다. 


위의 예제는 첫 레이블에 Spring 속성을 적용하고 드롭다운 메뉴와 시간을 나타내는 레이블을 적용한 것입니다.

728x90
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/04   »
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
글 보관함