ToolStrip 기술 요약

이 항목에서는 ToolStrip 제어 및 이를 사용하도록 지원하는 클래스에 대한 정보를 요약하여 설명합니다.

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

네임스페이스

System.Windows.Forms

배경

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

  • 더 일관된 이벤트 모델.

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

  • ToolStripManagerToolStripRenderer를 사용한 사용자 지정 렌더링.

  • ToolStripContainerToolStripPanel을 사용한 기본 제공 래프팅(도킹된 경우 도구 영역 내에서 가로 또는 세로 공간 공유).

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

  • CanOverflow 속성을 사용한 오버플로 메뉴 항목에 대한 항목 위치 변경.

  • ToolStripContainer, ToolStripPanelToolStripContentPanel을 통해 완전히 구성 가능한 컨트롤 위치.

  • ToolStripControlHost를 사용하여 ToolStrip, 기본 컨트롤 및 사용자 지정 컨트롤 호스트.

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

ToolStripMenuStrip, ContextMenuStripStatusStrip의 확장 가능한 기본 클래스입니다. 이들 컨트롤은 각 구현이 적절한 동작을 처리하도록 확장된, 일반 동작 및 이벤트 처리를 상속하는 ToolStripItem 컨테이너입니다. ToolStripItem에서 파생되는 컨트롤이 다음 표에 나와 있습니다. 기본 ToolStrip 클래스는 이들 컨트롤에 대한 그리기, 사용자 입력 및 끌어서 놓기 이벤트를 처리합니다.

ToolStrip, MenuStrip, ContextMenuStripStatusStrip 컨트롤은 이전 도구 모음, 메뉴, 바로 가기 메뉴 및 상태 표시줄 컨트롤을 대체합니다. 이전 버전과의 호환성을 위해 해당 컨트롤이 유지되는 경우에도 마찬가지입니다.

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 컨트롤에 대한 기본 제공 래퍼를 제공합니다. 다른 기존 컨트롤이나 COM 컨트롤을 ToolStripControlHost에서 호스트할 수도 있습니다.

컨트롤 호스트에 대한 예제를 보려면 방법: ToolStripControlHost를 사용하여 Windows Forms 컨트롤 래핑을 참조하세요.

렌더링

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

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

RenderModeManagerRenderMode로 설정하거나 RenderMode 또는 Renderer 속성을 각각 원하는 ToolStripManagerRenderMode 또는 ToolStripRenderer 값으로 설정하여 같은 애플리케이션의 여러 ToolStrip 개체에 같은 스타일을 적용할 수 있습니다.

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

스타일 및 테마

ToolStrip 및 연결된 클래스를 사용하면 각 항목에 대한 OnPaint 메서드를 재정의할 필요 없이 시각적 스타일과 사용자 지정 모양을 쉽게 지원할 수 있습니다. DisplayStyleRenderModeRenderer 속성을 사용합니다.

래프팅 및 도킹

ToolStrip 컨트롤을 래프팅, 도킹 또는 절대적으로 배치할 수 있습니다. ToolStrip 항목은 컨테이너의 LayoutEngine에 의해 배치됩니다.

래프팅은 가로 또는 세로 공간을 공유하는 도구 모음의 기능입니다. Windows 폼에는 ToolStripContainer가 포함될 수 있고, 이 컨테이너에는 폼의 왼쪽, 오른쪽, 위쪽, 아래쪽에 ToolStrip, MenuStripStatusStrip 컨트롤을 배치 및 래프팅할 패널이 있습니다. 왼쪽 또는 오른쪽 ToolStripContainer에 여러 ToolStrip 컨트롤을 배치하면 컨트롤이 세로로 쌓입니다. 위쪽 또는 아래쪽 ToolStripContainer에 배치하면 가로로 쌓입니다. ToolStripContainer의 가운데 ToolStripContentPanel을 사용하여 기존 컨트롤을 폼에 배치할 수 있습니다.

임의 또는 모든 ToolStripContainer 컨트롤은 디자인 타임에 직접 선택할 수 있고 삭제할 수 있습니다. ToolStripContainer는 확장 및 축소 가능하고 포함된 컨트롤을 사용하여 크기가 조정됩니다.

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

도킹을 통해 래프팅하는 이점은 ToolStrip, MenuStripStatusStrip 컨트롤이 다른 컨트롤과 가로 또는 세로 공간을 공유할 수 있다는 점입니다.

대부분 ToolStrip 컨트롤은 래프팅을 사용하는 대신 다른 컨트롤 같이 폼에 도킹될 수 있습니다. ToolStrip 컨트롤을 ToolStripContainer에서 제거하고 해당 Dock 속성을 None으로 설정하여 해당 컨트롤이 폼에 자유롭게 배치되도록 지정하거나, 각 Location 속성을 설정하여 절대 위치를 지정할 수 있습니다. 방법: ToolStripContainer의 ToolStrip을 폼으로 이동을 참조하세요.

더 큰 유연성, 특히 MDI(다중 문서 인터페이스) 애플리케이션을 위해 또는 ToolStripContainer가 필요하지 않을 경우 ToolStripPanel 컨트롤을 하나 이상 사용합니다. ToolStripPanel에서는 ToolStrip 컨트롤을 배치 및 래프팅할 도킹 가능한 공간을 제공하지만 기존 컨트롤에 사용할 공간을 제공하지 않습니다. 기본적으로 ToolStripPanel은 디자이너 도구 상자에 표시되지 않지만 도구 상자를 마우스 오른쪽 단추로 클릭하여 컨트롤을 도구 상자에 배치한 다음, 항목 선택을 클릭합니다. 다른 클래스처럼 ToolStripPanel에 프로그래밍 방식으로 액세스할 수도 있습니다.

ToolStrip, MenuStripStatusStrip을 통해 항목이 오버플로될 수 있습니다. 이는 이들 항목이 Microsoft Office 도구 모음에서 동작하는 방식과 비슷합니다.

추가 정보