티스토리 뷰

728x90

닷넷(.Net) 프레임워크의 진화 과정에서 이전 버전과 급격한 변화를 변화를 보인 컨트롤은 툴바와 함께 메뉴 컨트롤이 닷넷2.0부터 급격한 변화가 있었습니다. 이전에는 MainMenu 클래스를 통해서 기능을 제공했지만 이제는 MenuStrip 클래스를 통해서 기능을 제공합니다. 앞서 다루었던 툴스트립과(윈도우폼 툴바, 상태바 다루기 참조) 함께 툴스트립 컨테이너에 포함시켜 사용하는 것이 일반적입니다. 여러개의 메뉴스트립을 둘 수 있으며 Dock 속성에 따라 창의 배치 위치를 지정하면 그에 따라 메뉴 구조를 자동으로 조정해 줍니다. 기본값은 Hidden 이지만 GripStyle 속성을 Visible로 바꾸면 메뉴 스트립 앞에 위치를 이동시킬 수 있는 그립(Grip)이 표시되어서 툴스트립컨테이너의 상하좌우로 이동 배치할 수 있는 기능을 부여할 수 있습니다.


개별 메뉴는 위의 그림처럼 "여기에 입력" 부분을 클릭해서 항목을 추가해 갈 수 있습니다. 마우스로 클릭하면 항목이 자동 추가됩니다. 항목간 위치는 마우스 끌어다놓기로 조정할 수 있습니다. 메뉴의 각 개별 항목은 ToolStripMenuItem 클래스를 사용합니다. 메뉴스트립의 주요 속성은 아래와 같습니다.

  • MdiWindowListItem : MDI 응용에서 사용하는 것으로 메뉴 스트립의 최상단 항목중의 하나를 선택하면 MDI 자식 창 목록을 표시할 수 있습니다.
  • ShowItemToolTips : True로 설정하면 메뉴 항목 각각에 있는 ToolTipText 속성으로 툴팁을 보여줍니다.
  • Stretch : 기본값은 True이며, 메뉴 스트립을 포함하고 있는 컨테이너의 영역에 맞추어 양쪽으로 채울것인지 여부를 지정합니다.



각 메뉴 항목은 위의 그림처럼 이미지를 표시할 수 있으며, ShortcutKeys 속성을 값 영역을 클릭하면 위의 그림과 같이 각 메뉴에 해당하는 단축키를 지정할 수 있습니다. 또한 Checked, CheckOnClick, CheckState 등의 속성을 사용하여 체크박스 컨트롤에 준하는 동작을 메뉴에 적용할 수 있습니다. 메뉴 항목의 이름은 다른 컨틑롤과 달리 메뉴의 텍스트를 한글로 입력하면 아래의 코드 처럼 기본 컨트롤 이름도 입력한 한글을 따라감에 주의하셔야 합니다. 개별 메뉴 항목을 선택했을 때의 처리 루틴은 아래의 코드처럼 각 항목에 대한 클릭 이벤트를 처리하면 됩니다.

    Private Sub 열기ToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) _
            Handles 열기ToolStripMenuItem.Click
        닫기ToolStripMenuItem.Checked = True
    End Sub


컨텍스트 메뉴는 창의 배경이나 개별 컨트롤을 마우스 우측 버튼으로 클릭했을때 나오는 메뉴로 위의 그림처럼 기본 디자인 화면에서는 나오지 않고 하단의 컨트롤 트레이에서 추가한 컨텍스트 메뉴를 선택해서 메뉴를 관리하면 됩니다. 컨텍스트 메뉴가 준비되면 위의 그림과 같이 컨텍스트 메뉴를 적용할 컨트롤의 ContextMenuStrip 속성에 설정하면 됩니다. 하나의 컨텍스트 메뉴를 여러 컨트롤에 적용해도 문제될것이 없는 것입니다.



컨텍스트 메뉴도 메뉴 스트립처럼 "여기에 입력"에 메뉴를 추가해 가면 됩니다. 컨텍스트 메뉴의 각 항목은 메뉴 스트립과 동일하게 ToolStripMenuItem 클래스를 사용합니다.


위의 그림은 폼 컨트롤에 컨텍스트 메뉴를 적용하여 창 배경에 우측 마우스를 클릭하여 나온 화면입니다.


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
글 보관함