다음을 통해 공유


ToolStrip 기술 요약

업데이트: 2007년 11월

이 항목에서는 ToolStrip 컨트롤에 대한 정보와 이 컨트롤을 사용할 수 있도록 지원하는 클래스에 대한 정보를 요약하여 설명합니다.

ToolStrip 컨트롤 및 연결된 클래스는 도구 모음, 상태 표시줄 및 메뉴를 만들 수 있도록 완전한 솔루션을 제공합니다.

네임스페이스

System.Windows.Forms

배경

ToolStrip 컨트롤 및 연결된 클래스를 사용하면 일관성 있고 전문적인 모양과 동작을 갖춘 고급 도구 모음 기능을 만들 수 있습니다. ToolStrip 컨트롤 및 클래스에서는 이전 컨트롤에 비해 다음과 같은 향상된 기능을 제공합니다.

  • 이벤트 모델의 일관성 향상

  • 작업 목록 및 항목 컬렉션 편집기가 포함된 디자인 타임 동작의 일관성 향상

  • ToolStripManager와 ToolStripRenderer를 사용한 사용자 지정 렌더링

  • ToolStripContainer와 ToolStripPanel을 사용한 기본 제공 래프팅(rafting) 기능. 이 기능은 컨트롤이 도킹되었을 때 도구 영역 내의 가로 또는 세로 공간을 공유합니다.

  • AllowItemReorder 속성을 사용하여 디자인 타임 및 런타임에 항목 다시 정렬

  • CanOverflow 속성을 사용하여 오버플로 메뉴에 항목 재배치

  • ToolStripContainer, ToolStripPanel 및 ToolStripContentPanel을 사용하여 컨트롤 위치를 완전하게 구성 가능

  • ToolStripControlHost를 사용하여 ToolStrip, 일반 또는 사용자 지정 컨트롤을 호스팅

  • ToolStripPanel을 사용하여 ToolStrip 컨트롤 병합

ToolStrip은 MenuStrip, ContextMenuStrip 및 StatusStrip의 확장 가능한 기본 클래스입니다. 이러한 컨트롤은 일반 동작과 이벤트 처리를 상속하는 ToolStripItem 컨테이너이며, 각 구현에서 적합한 동작을 처리하도록 확장됩니다. ToolStripItem에서 파생되는 컨트롤은 아래의 표에 나열되어 있습니다. 기본 ToolStrip 클래스에서는 이러한 컨트롤의 그리기, 사용자 입력 및 끌어서 놓기 이벤트를 처리합니다.

ToolStrip, MenuStrip, ContextMenuStrip 및 StatusStrip 컨트롤은 이전의 도구 모음, 메뉴, 바로 가기 메뉴 및 상태 표시줄 컨트롤 대신 사용되며 이러한 컨트롤은 이전 버전과의 호환성을 위해 그대로 유지됩니다.

ToolStrip 클래스 요약

다음 표에서는 기술 영역에 따라 그룹화된 ToolStrip 클래스를 보여 줍니다.

기술 영역

클래스

도구 모음, 상태 및 메뉴 컨테이너

ToolStrip

MenuStrip

ContextMenuStrip

StatusStrip

ToolStripDropDownMenu

ToolStrip 항목

ToolStripLabel

ToolStripDropDownItem

ToolStripMenuItem

ToolStripButton

ToolStripStatusLabel

ToolStripSeparator

ToolStripControlHost

ToolStripComboBox

ToolStripTextBox

ToolStripProgressBar

ToolStripDropDownButton

ToolStripSplitButton

위치

ToolStripContainer

ToolStripContentPanel

ToolStripPanel

프레젠테이션 및 렌더링

ToolStripManager

ToolStripRenderer

ToolStripProfessionalRenderer

ToolStripRenderMode

ToolStripManagerRenderMode

ToolStrip 디자인 타임 기능

ToolStrip 컨트롤 패밀리는 작업 응용 프로그램을 빨리 만들 수 있도록 사용자 인터페이스 기초의 내부 편집 및 정의를 위한 다양한 도구와 템플릿을 제공합니다.

작업 대화 상자

Visual Studio의 디자이너에서 컨트롤의 스마트 태그를 클릭하면 자주 사용하는 명령에 쉽게 액세스할 수 있도록 작업 목록이 표시됩니다.

항목 컬렉션 편집기

Visual Studio의 경우 작업 목록에서 항목 편집을 클릭하거나, 컨트롤을 마우스 오른쪽 단추로 클릭하고 바로 가기 메뉴에서 항목 편집을 선택하면 컨트롤의 컬렉션 편집기가 표시됩니다. 컬렉션 편집기를 사용하여 컨트롤에 항목을 추가하고 컨트롤에 포함된 항목을 제거하거나 다시 정렬할 수 있습니다. 컨트롤 및 컨트롤 항목의 속성을 보거나 변경할 수도 있습니다.

컨트롤 호스팅

ToolStripControlHost 클래스는 ToolStripComboBox, ToolStripTextBoxToolStripProgressBar 컨트롤에 기본 제공 래퍼를 제공합니다. 또한 ToolStripControlHost의 기존 컨트롤이나 COM 컨트롤을 모두 호스팅할 수 있습니다.

컨트롤 호스팅의 예제를 보려면 방법: ToolStripControlHost를 사용하여 Windows Forms 컨트롤 래핑을 참조하십시오.

렌더링

ToolStrip 클래스에서는 다른 Windows Forms 컨트롤과는 상당히 다른 렌더링 체계를 구현합니다. 이 체계를 사용하면 스타일과 테마를 쉽게 적용할 수 있습니다.

ToolStrip과 여기에 포함된 모든 ToolStripItem 개체에 스타일을 적용할 때 각 항목에 대해 Paint 이벤트를 처리할 필요가 없습니다. 대신 RenderMode 속성을 Custom이 아닌 ToolStripRenderMode 값 중 하나로 설정하면 됩니다. 또는 RendererToolStripRenderer 클래스에서 상속되는 클래스로 직접 설정할 수도 있습니다. 이 속성을 설정하면 RenderMode가 자동으로 설정됩니다.

RenderModeManagerRenderMode로 설정하고 RenderMode 또는 Renderer 속성을 각각 원하는 ToolStripManagerRenderMode 또는 ToolStripRenderer 값으로 설정하여 같은 응용 프로그램의 여러 ToolStrip 개체에 같은 스타일을 적용할 수 있습니다.

렌더링 예제를 보려면 방법: Windows Forms의 ToolStrip 컨트롤에 대한 사용자 지정 렌더러 만들기 및 설정ToolStrip Custom Renderer 샘플을 참조하십시오.

스타일 및 테마

ToolStrip 및 연결된 클래스는 각 항목에 대해 OnPaint 메서드를 재정의하지 않고도 비주얼 스타일과 사용자 지정 모양을 지원할 수 있는 손쉬운 방법을 제공합니다. DisplayStyleRenderModeRenderer 속성을 사용하십시오.

래프팅(rafting) 및 도킹

ToolStrip 컨트롤을 래프팅(rafting)하거나 도킹하거나 절대 위치에 배치할 수 있습니다. ToolStrip 항목은 컨테이너의 LayoutEngine에서 레이아웃됩니다.

래프팅(rafting)은 도구 모음에서 가로 간격이나 세로 간격을 공유할 수 있는 기능입니다. Windows Form에는 ToolStrip, MenuStripStatusStrip 컨트롤을 배치하고 래프팅(rafting)하기 위해 패널이 폼의 왼쪽, 오른쪽, 위쪽, 아래쪽에 번갈아 놓이는 ToolStripContainer가 포함될 수 있습니다. 여러 ToolStrip 컨트롤을 왼쪽 또는 오른쪽 ToolStripContainer에 넣으면 세로로 스택되고 위쪽 또는 아래쪽 ToolStripContainer에 넣으면 가로로 스택됩니다. ToolStripContainer의 가운데 ToolStripContentPanel을 사용하여 폼에서 기존 컨트롤의 위치를 지정할 수 있습니다.

ToolStripContainer 컨트롤의 일부 또는 모두를 디자인 타임에 직접 선택할 수 있으며 삭제도 가능합니다. ToolStripContainer는 확장과 축소가 가능하며 여기에 포함된 컨트롤에 따라 크기가 조정됩니다.

도킹은 폼의 왼쪽, 오른쪽, 위쪽 및 아래쪽에 컨트롤의 단순한 위치를 지정하는 것입니다.

래프팅(rafting)의 장점은 도킹과 달리 ToolStrip, MenuStripStatusStrip 컨트롤에서 다른 컨트롤과 가로 간격이나 세로 간격을 공유할 수 있다는 점입니다.

대부분의 ToolStrip 컨트롤은 래프팅(rafting)을 사용하지 않고 다른 컨트롤처럼 폼에 도킹될 수 있습니다. 또한 ToolStrip 컨트롤을 ToolStripContainer에서 제거하고 Dock 속성을 None으로 설정하여 폼에 자유롭게 배치되도록 지정하거나, 각 Location 속성을 설정하여 절대 위치를 지정할 수도 있습니다. 방법: ToolStripContainer의 ToolStrip을 폼으로 이동을 참조하십시오.

특히 MDI(다중 문서 인터페이스) 응용 프로그램의 경우나 ToolStripContainer가 필요하지 않은 경우에는 유연성을 높이기 위해 하나 이상의 ToolStripPanel 컨트롤을 사용합니다. ToolStripPanel에서는 일반적인 컨트롤이 아닌 ToolStrip 컨트롤을 배치하고 래프팅(rafting)하기 위해 도킹 가능한 공간을 제공합니다. 기본적으로 ToolStripPanel은 디자이너 도구 상자에 표시되지 않지만 도구 상자를 마우스 오른쪽 단추로 클릭한 다음 항목 선택을 클릭하여 삽입할 수 있습니다. 다른 클래스와 마찬가지로 ToolStripPanel에 프로그래밍 방식으로 액세스할 수도 있습니다.

ToolStrip, MenuStripStatusStrip에서는 항목 오버플로를 허용합니다. 이것은 이러한 항목이 Microsoft Office 도구 모음에서 동작하는 방식과 비슷합니다.

참고 항목

작업

ToolStrip 샘플

ToolStrip 사용자 지정 샘플

통합 명령 샘플

개념

ToolStrip 컨트롤 아키텍처

참조

ToolStrip 컨트롤 개요(Windows Forms)