다음을 통해 공유


ToolStrip 컨트롤 아키텍처

업데이트: 2007년 11월

ToolStripToolStripItem 클래스는 도구 모음, 상태 및 메뉴 항목을 표시하기 위한 융통성 있고 확장 가능한 시스템을 제공합니다. 이러한 클래스는 모두 System.Windows.Forms 네임스페이스에 포함되어 있으며 일반적으로 ToolStripOverflow와 같이 "ToolStrip" 접두사나 MenuStrip과 같이 "Strip" 접미사가 포함된 이름이 지정됩니다.

ToolStrip

다음 항목에서는 ToolStrip과 이 클래스에서 파생되는 컨트롤에 대해 설명합니다.

ToolStripMenuStrip, StatusStripContextMenuStrip의 추상 기본 클래스입니다. 다음 개체 모델은 ToolStrip 상속 계층 구조를 보여 줍니다.

ToolStrip 개체 모델

ToolStrip 개체 모델

ToolStrip의 모든 항목에는 Items 컬렉션을 통해 액세스할 수 있습니다. ToolStripDropDownItem의 모든 항목에는 DropDownItems 컬렉션을 통해 액세스할 수 있습니다. ToolStrip에서 파생된 클래스의 경우 DisplayedItems 속성을 사용하여 현재 표시된 항목에만 액세스할 수도 있습니다. 이는 현재 오버플로 메뉴에 있지 않은 항목입니다.

다음 항목은 모든 방향에서 ToolStripSystemRendererToolStripProfessionalRenderer 모두와 자연스럽게 작동하도록 특별히 디자인되었습니다. 이러한 항목은 기본적으로 디자인 타임에 ToolStrip 컨트롤에 사용할 수 있습니다.

MenuStripMainMenu를 대체하는 최상위 컨테이너로서, 키 처리 및 MDI(다중 문서 인터페이스) 기능도 제공합니다. 기능적으로 ToolStripDropDownItemToolStripMenuItemToolStripItem에서 파생되었더라도 MenuStrip과 함께 사용할 수 있습니다.

다음 항목은 모든 방향에서 ToolStripSystemRendererToolStripProfessionalRenderer 모두와 자연스럽게 작동하도록 특별히 디자인되었습니다. 이러한 항목은 기본적으로 디자인 타임에 MenuStrip 컨트롤에 사용할 수 있습니다.

StatusStrip

StatusStripStatusBar 컨트롤을 대체합니다. StatusStrip에는 사용자 지정 테이블 레이아웃, 폼의 크기 조정/이동 그립 지원 및 ToolStripStatusLabel이 사용 가능한 공간을 자동으로 채우도록 하는 Spring 속성과 같은 특수 기능이 포함되어 있습니다.

다음 항목은 모든 방향에서 ToolStripSystemRendererToolStripProfessionalRenderer 모두와 자연스럽게 작동하도록 특별히 디자인되었습니다. 이러한 항목은 기본적으로 디자인 타임에 StatusStrip 컨트롤에 사용할 수 있습니다.

ContextMenuStrip

ContextMenuStripContextMenu를 대체합니다. ContextMenuStrip을 컨트롤과 연결할 수 있으며 마우스 오른쪽 단추를 클릭하면 상황에 맞는 메뉴(바로 가기 메뉴)가 자동으로 표시됩니다. Show 메서드를 사용하여 ContextMenuStrip을 프로그래밍 방식으로 표시할 수 있습니다. ContextMenuStrip은 동적 채우기 및 여러 번 클릭 시나리오를 처리하기 위한 취소 가능한 OpeningClosing 이벤트를 지원합니다. ContextMenuStrip은 이미지, 메뉴 항목 확인 상태, 텍스트, 선택키, 바로 가기 및 계단식 메뉴를 지원합니다.

다음 항목은 모든 방향에서 ToolStripSystemRendererToolStripProfessionalRenderer 모두와 자연스럽게 작동하도록 특별히 디자인되었습니다. 이러한 항목은 기본적으로 디자인 타임에 ContextMenuStrip 컨트롤에 사용할 수 있습니다.

ToolStrip 일반 기능

다음 항목에서는 ToolStrip 및 파생된 컨트롤에 일반적인 기능과 동작을 설명합니다.

그리기

여러 가지 방법으로 ToolStrip 컨트롤에서 사용자 지정 그리기를 수행할 수 있습니다. ToolStripToolStripItem에는 다른 Windows Forms 컨트롤과 마찬가지로 재정의할 수 있는 OnPaint 메서드와 Paint 이벤트가 있습니다. 일반적인 그리기와 마찬가지로 좌표계는 컨트롤의 클라이언트 영역을 기준으로 합니다. 즉, 컨트롤의 왼쪽 위 모퉁이에 대한 좌표가 0, 0입니다. ToolStripItem의 Paint 이벤트와 OnPaint 메서드는 다른 컨트롤 그리기 이벤트와 마찬가지로 동작합니다.

ToolStrip 컨트롤을 사용하면 ToolStrip의 배경, 항목 배경, 항목 이미지, 항목 화살표, 항목 텍스트 및 테두리를 그리기 위한 재정의 가능한 메서드가 포함된 ToolStripRenderer 클래스를 통해 항목 및 컨테이너의 세부 렌더링 기능에 액세스할 수도 있습니다. 이러한 메서드의 이벤트 인수는 원하는 대로 조정할 수 있는 사각형, 색, 텍스트 서식 등의 여러 속성을 노출합니다.

항목이 그려지는 방식의 몇 가지 특성만 조정하려면 일반적으로 ToolStripRenderer를 재정의합니다.

새 항목을 작성하고 그리기의 모든 특성을 제어하려면 OnPaint 메서드를 재정의합니다. OnPaint 내에서 ToolStripRenderer의 메서드를 사용할 수 있습니다.

기본적으로 ToolStripOptimizedDoubleBuffer 설정을 사용하여 이중 버퍼링됩니다.

부모 지정

ToolStrip 컨트롤에서는 컨테이너의 소유권 및 부모 지정이라는 개념은 다른 Windows Forms 컨테이너 컨트롤에서보다 복잡합니다. 이 개념은 오버플로, 여러 ToolStrip 항목 간의 드롭다운 항목 공유와 같은 동적 시나리오와 컨트롤에서 ContextMenuStrip 생성을 지원하는 데 필요합니다.

다음 목록에서는 부모 지정과 관련된 멤버와 해당 멤버의 용도에 대해 설명합니다.

  • OwnerItem은 드롭다운 항목의 소스 항목에 액세스합니다. 이는 SourceControl과 비슷하지만 컨트롤을 반환하는 대신 ToolStripItem을 반환한다는 점이 다릅니다.

  • SourceControl은 여러 컨트롤에서 동일한 ContextMenuStrip을 공유할 경우 ContextMenuStrip의 소스에 해당하는 컨트롤을 확인합니다.

  • GetCurrentParentParent 속성에 대한 읽기 전용 접근자입니다. 부모는 반환된 현재 ToolStrip을 나타낸다는 점에서 소유자와 다릅니다. 이 컨트롤은 항목을 표시하며 오버플로 영역에 있을 수 있습니다.

  • Owner는 항목 컬렉션에 현재 ToolStripItem이 들어 있는 ToolStrip을 반환합니다. 오버프로를 처리하는 특수 코드를 작성하지 않고 최상위 ToolStripImageList나 다른 속성을 참조하는 데는 이 속성이 가장 유용합니다.

상속된 컨트롤의 동작

다음 컨트롤은 상속에 사용될 때마다 잠깁니다.

예를 들어, 위 목록에 있는 컨트롤을 하나 이상 사용하여 새 Windows Forms 응용 프로그램을 만듭니다. 하나 이상의 컨트롤에 대한 액세스 수정자를 public이나 protected로 설정하고 프로젝트를 빌드합니다. 그런 다음 첫 번째 폼에서 상속되는 폼을 추가하고 상속된 컨트롤을 선택합니다. 그러면 액세스 수정자가 private일 때와 같이 컨트롤이 잠긴 것으로 나타납니다.

ToolStripContainer의 상속 지원

ToolStripContainer 컨트롤은 다음 예제와 유사한 제한된 상속 시나리오를 지원합니다.

  1. 새 Windows Forms 응용 프로그램을 만듭니다.

  2. 이 폼에 ToolStripContainer를 추가합니다.

  3. ToolStripContainer의 액세스 한정자를 public 또는 protected로 설정합니다.

  4. ToolStripContainerToolStripPanel 영역에 ToolStrip, MenuStripContextMenuStrip 컨트롤의 조합을 추가합니다.

  5. 프로젝트를 빌드합니다.

  6. 첫 번째 폼에서 상속되는 폼을 추가합니다.

  7. 폼의 상속된 ToolStripContainer를 선택합니다.

자식 컨트롤의 상속된 동작

위의 단계를 완료하면 다음과 같이 상속된 동작이 발생합니다.

  • 디자이너에서 컨트롤이 상속된 아이콘과 함께 표시됩니다.

  • ToolStripPanel 컨트롤이 잠겨 있으므로 이 컨트롤의 내용을 선택하거나 다시 정렬할 수 없습니다.

  • ToolStripContentPanel에 컨트롤을 추가하거나 컨트롤을 이동하거나 ToolStripContentPanel의 자식 컨트롤로 만들 수 있습니다.

  • 폼을 빌드한 후에도 변경 내용은 유지됩니다.

    참고:

    ToolStripContainer에 포함된 모든 ToolStripPanel 컨트롤에서 액세스 한정자를 제거하십시오. ToolStripContainer의 액세스 한정자는 전체 컨트롤을 제어합니다.

부분 신뢰

부분 신뢰 상태에서 ToolStrip 제한은 권한이 없는 사용자나 서비스가 사용할 수도 있는 개인 정보를 실수로 입력하는 것을 방지하기 위한 것입니다. 이를 보호하는 방법은 다음과 같습니다.

  • ToolStripDropDown 컨트롤은 AllWindows가 있어야 ToolStripControlHost에 항목을 표시할 수 있습니다. 이 제한은 ToolStripTextBox, ToolStripComboBox, ToolStripProgressBar 등의 내장 컨트롤과 사용자가 만든 컨트롤 모두에 적용됩니다. 이 요구 사항이 충족되지 않으면 이러한 항목이 표시되지 않습니다. 예외가 throw되지 않습니다.

  • AutoClose 속성을 false로 설정할 수 없으며 취소 가능한 Closing 이벤트 매개 변수는 무시됩니다. 따라서 드롭다운 항목을 닫지 않으면 둘 이상의 키를 입력할 수 없습니다. 이 요구 사항이 충족되지 않으면 이러한 항목이 표시되지 않습니다. 예외가 throw되지 않습니다.

  • 많은 키 입력 처리 이벤트가 AllWindows 이외의 부분 신뢰 컨텍스트에서는 발생하지 않습니다.

  • AllWindows가 부여되지 않은 경우 선택키가 처리되지 않습니다.

사용

다음 사용 패턴은 ToolStrip 레이아웃, 키보드 상호 작용 및 최종 사용자 동작과 관계가 있습니다.

  • ToolStripPanel에 결합

    ToolStripPanel 내에서 또는 여러 ToolStripPanel 간에 ToolStrip의 위치를 조정할 수 있습니다. 이때 Dock 속성은 무시되며 Stretch 속성이 false인 경우 ToolStrip의 크기는 ToolStripPanel에 항목이 추가될 때마다 늘어납니다. 일반적으로 ToolStrip은 탭 순서에 포함되지 않습니다.

  • 도킹

    ToolStrip은 컨테이너 한 쪽의 고정 위치에 배치되며 크기는 해당 컨트롤이 도킹된 전체 가장자리 크기에 맞게 늘어납니다. 일반적으로 ToolStrip은 탭 순서에 포함되지 않습니다.

  • 절대 위치

    ToolStripLocation 속성에 따라 배치되고 고정 크기이며 일반적으로 탭 순서에 포함된다는 점에서 다른 컨트롤과 비슷합니다.

키보드 상호 작용

선택키

키보드를 사용하여 컨트롤을 활성화하는 한 가지 방법으로 선택키를 Alt 키와 함께 또는 Alt 키 다음에 사용할 수 있습니다. ToolStrip은 명시적 선택키와 암시적 선택키를 모두 지원합니다. 명시적 정의에서는 문자 앞에 앰퍼샌드(&) 문자를 사용합니다. 암시적 정의에서는 지정된 Text 속성의 문자 순서에 따라 일치하는 항목을 찾는 알고리즘을 사용합니다.

바로 가기 키

MenuStrip에서 사용되는 바로 가기 키를 정의하는 데는 Keys 열거형(순서 관계없음)의 조합이 사용됩니다. ShortcutKeyDisplayString 속성을 사용하여 "Delete" 대신 "Del"을 표시하는 등 텍스트만 포함된 바로 가기 키를 표시할 수도 있습니다.

탐색

Alt 키는 MainMenuStrip이 가리키는 MenuStrip을 활성화합니다. 여기에서 Ctrl+Tab을 누르면 ToolStripPanel에 있는 ToolStrip 컨트롤 사이를 탐색할 수 있습니다. Tab 키와 숫자 키패드의 아래쪽 화살표를 누르면 ToolStrip에 있는 항목 사이를 탐색할 수 있습니다. 특수한 알고리즘이 오버플로 영역의 탐색을 처리합니다. 스페이스바는 ToolStripButton, ToolStripDropDownButton 또는 ToolStripSplitButton을 선택합니다.

포커스 및 유효성 검사

MenuStrip이나 ToolStrip은 Alt 키에 의해 활성화되어도 현재 포커스가 있는 컨트롤에서 포커스를 가져오지 않고 제거하지도 않습니다. MenuStrip이나 MenuStrip의 드롭다운 내에서 호스팅되는 컨트롤이 있는 경우 사용자가 Tab 키를 누르면 해당 컨트롤이 포커스를 얻습니다. 일반적으로 MenuStripGotFocus, LostFocus, EnterLeave 이벤트는 키보드에 의해 해당 이베트가 활성화되어도 발생하지 않습니다. 이러한 경우 MenuActivateMenuDeactivate 이벤트를 대신 사용합니다.

CausesValidation의 기본값은 false입니다. 따라서 유효성 검사를 수행하려면 폼에서 Validate를 명시적으로 호출해야 합니다.

레이아웃

LayoutStyle 속성이 있는 ToolStripLayoutStyle의 멤버 중 하나를 선택하여 ToolStrip 레이아웃을 제어할 수 있습니다.

스택 레이아웃

스택 레이아웃은 ToolStrip의 양 끝에서 각 항목을 서로 나란히 배열하는 방법입니다. 다음 목록에서는 스택 레이아웃에 대해 설명합니다.

스택 레이아웃의 다른 기능

Alignment는 항목이 ToolStrip의 어느 쪽 끝에 맞춰질지를 결정합니다.

항목 수가 ToolStrip 크기에 맞지 않으면 오버플로 단추가 자동으로 나타납니다. Overflow 속성 설정은 항목을 오버플로 영역에 항상 표시할지, 필요한 경우에만 표시할지, 아니면 전혀 표시하지 않을지를 결정합니다.

LayoutCompleted 이벤트에서 Placement 속성을 검사하여 항목이 주 ToolStrip에 배치되었는지, 오버플로 ToolStrip에 배치되었는지, 아니면 현재는 전혀 표시되지 않았는지를 확인할 수 있습니다. 일반적으로 항목이 주 ToolStrip 크기에 맞지 않고 Overflow 속성이 Never로 설정되어 있으면 항목이 표시되지 않습니다.

ToolStripToolStripPanel에 배치하고 해당 GripStyleVisible로 설정하여 이동 가능하게 만들 수 있습니다.

기타 레이아웃 옵션

기타 레이아웃 옵션으로는 FlowTable이 있습니다.

선형 레이아웃

Flow 레이아웃은 ContextMenuStrip, ToolStripDropDownMenuToolStripOverflow의 기본값입니다. 이 레이아웃은 FlowLayoutPanel과 비슷합니다. Flow 레이아웃의 기능은 다음과 같습니다.

테이블 레이아웃

Table 레이아웃은 StatusStrip의 기본값입니다. 이 레이아웃은 TableLayoutPanel과 비슷합니다. Flow 레이아웃의 기능은 다음과 같습니다.

ToolStripItem

다음 항목에서는 ToolStripItem과 이 클래스에서 파생되는 컨트롤에 대해 설명합니다.

ToolStripItemToolStrip에 포함되는 모든 항목에 대한 추상 기본 클래스입니다. 다음 개체 모델은 ToolStripItem 상속 계층 구조를 보여 줍니다.

ToolStripItem 개체 모델

ToolStripItem 개체 모델

ToolStripItem 클래스는 ToolStripItem에서 직접 상속되거나 ToolStripControlHost 또는 ToolStripDropDownItem을 통해 ToolStripItem에서 간접적으로 상속됩니다.

ToolStripItem 컨트롤은 ToolStrip, MenuStrip, StatusStrip 또는 ContextMenuStrip에 포함되어야 하며, 폼에 직접 추가할 수는 없습니다. 다양한 컨테이너 클래스가 ToolStripItem 컨트롤의 적절한 하위 집합을 포함하도록 디자인되었습니다.

다음 표에서는 스톡 ToolStripItem 컨트롤의 목록과 해당 컨트롤이 가장 잘 나타나는 컨테이너를 보여 줍니다. 모든 ToolStrip 항목을 모든 ToolStrip 파생 컨테이너에서 호스팅할 수 있지만 이 항목은 다음 컨테이너에서 가장 잘 나타나도록 디자인되었습니다.

참고:

ToolStripDropDown은 디자이너 도구 상자에 표시되지 않습니다.

포함된 항목

ToolStrip

MenuStrip

ContextMenuStrip

StatusStrip

ToolStripDropDown

ToolStripButton

아니요

아니요

아니요

ToolStripComboBox

아니요

ToolStripSplitButton

아니요

아니요

ToolStripLabel

아니요

아니요

ToolStripSeparator

아니요

ToolStripDropDownButton

아니요

아니요

ToolStripTextBox

아니요

ToolStripMenuItem

아니요

아니요

아니요

ToolStripStatusLabel

아니요

아니요

아니요

아니요

ToolStripProgressBar

아니요

아니요

아니요

ToolStripControlHost

아니요

ToolStripButton

ToolStripButtonToolStrip의 단추 항목입니다. 다양한 테두리 스타일로 단추 항목을 표시하고 이를 사용하여 작업 상태를 나타내거나 활성화할 수 있습니다. 기본적으로 포커스를 받도록 단추 항목을 정의할 수도 있습니다.

ToolStripLabel

ToolStripLabelToolStrip 컨트롤의 레이블 기능을 제공합니다. ToolStripLabel은 기본적으로 포커스를 받지 않고 누름 또는 선택 상태로 렌더링되지 않는다는 점에서 ToolStripButton과 비슷합니다.

호스팅된 항목인 ToolStripLabel은 선택키를 지원합니다.

ToolStrip에서 링크 컨트롤을 지원하려면 ToolStripLabelLinkColor, LinkVisitedLinkBehavior 속성을 사용합니다.

ToolStripStatusLabel

ToolStripStatusLabelToolStripLabelStatusStrip에 사용하기 알맞게 변경한 것입니다. 이 컨트롤에는 BorderStyle, BorderSidesSpring과 같은 특수 기능이 있습니다.

ToolStripSeparator

ToolStripSeparator는 방향에 따라 도구 모음 또는 메뉴에 가로줄이나 세로줄을 추가합니다. 이 컨트롤은 메뉴에서와 같이 항목을 그룹화하거나 각 항목을 구분해 줍니다.

디자인 타임에 드롭다운 목록에서 ToolStripSeparator를 선택하여 이 컨트롤을 추가할 수 있습니다. 그러나 디자이너 템플릿 노드나 Add 메서드에서 하이픈(-)을 입력하여 ToolStripSeparator를 자동으로 만들 수도 있습니다.

ToolStripControlHost

ToolStripControlHostToolStripComboBox, ToolStripTextBoxToolStripProgressBar의 추상 기본 클래스입니다. ToolStripControlHost는 다음 두 가지 방법으로 사용자 지정 컨트롤을 비롯한 다른 컨트롤을 호스팅할 수 있습니다.

  • Control에서 파생되는 클래스를 사용하여 ToolStripControlHost를 생성합니다. 호스팅된 컨트롤과 속성에 모두 액세스하려면 Control 속성을 이 속성이 나타내는 실제 클래스로 다시 캐스팅해야 합니다.

  • ToolStripControlHost를 확장하고 상속된 클래스의 기본 생성자에서 Control의 파생 클래스를 전달하여 기본 클래스 생성자를 호출합니다. 이 옵션을 사용하면 ToolStrip에서 쉽게 액세스할 수 있도록 공용 컨트롤 메서드와 속성을 래핑할 수 있습니다.

ToolStripComboBox

ToolStripComboBoxComboBoxToolStrip에서 호스팅하기 적합하게 수정한 것입니다. 호스팅된 컨트롤의 속성 및 이벤트 중 일부는 ToolStripComboBox 수준에서 노출되지만 내부 ComboBox 컨트롤은 ComboBox 속성을 통해 완전하게 액세스할 수 있습니다.

ToolStripTextBox

ToolStripTextBoxTextBoxToolStrip에서 호스팅하기 적합하게 수정한 것입니다. 호스팅된 컨트롤의 속성 및 이벤트 중 일부는 ToolStripTextBox 수준에서 노출되지만 내부 TextBox 컨트롤은 TextBox 속성을 통해 완전하게 액세스할 수 있습니다.

ToolStripProgressBar

ToolStripProgressBarProgressBarToolStrip에서 호스팅하기 적합하게 수정한 것입니다. 호스팅된 컨트롤의 속성 및 이벤트 중 일부는 ToolStripProgressBar 수준에서 노출되지만 내부 ProgressBar 컨트롤은 ProgressBar 속성을 통해 완전하게 액세스할 수 있습니다.

ToolStripDropDownItem

ToolStripDropDownItemToolStripMenuItem, ToolStripDropDownButtonToolStripSplitButton의 추상 기본 클래스로서, 드롭다운 컨테이너에서 직접 항목을 호스팅하거나 추가 항목을 호스팅할 수 있습니다. 이 작업은 DropDown 속성을 ToolStripDropDown으로 설정하고 ToolStripDropDownItems 속성을 설정하여 수행됩니다. 이러한 드롭다운 항목은 DropDownItems 속성을 통해 직접 액세스할 수 있습니다.

ToolStripMenuItem

ToolStripMenuItem은 메뉴의 특수 강조 표시, 레이아웃 및 열 배열을 처리하기 위해 ToolStripDropDownMenuContextMenuStrip과 함께 작동하는 ToolStripDropDownItem입니다.

ToolStripDropDownButton

ToolStripDropDownButtonToolStripButton과 비슷하지만 사용자가 클릭하면 드롭다운 영역이 표시됩니다. ShowDropDownArrow 속성을 설정하여 드롭다운 화살표를 숨기거나 표시할 수 있습니다. ToolStripDropDownButtonToolStrip에 표시되지 못한 항목을 표시하는 ToolStripOverflowButton을 호스팅합니다.

ToolStripSplitButton

ToolStripSplitButton은 단추 기능과 드롭다운 단추 기능을 결합한 것입니다.

선택한 드롭다운 항목의 Click 이벤트와 단추에 표시된 항목을 동기화하려면 DefaultItem 속성을 사용합니다.

ToolStripItem 일반 기능

ToolStripItem은 다음과 같은 일반 기능과 컨트롤 상속을 위한 옵션을 제공합니다.

  • 핵심 이벤트

  • 이미지 처리

  • 맞춤

  • 텍스트와 이미지의 관계

  • 표시 스타일

핵심 이벤트

ToolStripItem 컨트롤은 해당 컨트롤의 클릭, 마우스 및 그리기 이벤트를 받으며 일부 키보드 전처리도 수행할 수 있습니다.

이미지 처리

Image, ImageAlign, ImageIndex, ImageKeyImageScaling 속성은 다양한 이미지 처리 특성과 관련이 있습니다. 이러한 속성을 직접 설정하거나 런타임 전용 ImageList 속성을 설정하여 ToolStrip 컨트롤에서 이미지를 사용합니다.

이미지 배율은 다음과 같이 ToolStripToolStripItem 모두에 있는 속성의 상호 작용에 따라 달라집니다.

맞춤

Alignment 속성의 값은 항목이 ToolStrip의 어느 쪽 끝에 나타날지를 결정합니다. Alignment 속성은 ToolStrip의 레이아웃 스타일이 스택 오버플로 값 중 하나로 설정된 경우에만 작동합니다.

항목은 항목 컬렉션에 나타나는 순서대로 ToolStrip에 배치됩니다. 항목이 배치되는 위치를 프로그래밍 방식으로 변경하려면 Insert 메서드를 사용하여 컬렉션의 항목을 이동합니다. 이 메서드는 항목을 복제하는 것이 아니라 이동합니다.

텍스트와 이미지의 관계

TextImageRelation 속성은 ToolStripItem의 텍스트를 기준으로 이미지의 상대 위치를 정의합니다. 이미지, 텍스트 또는 둘 모두가 없는 항목의 경우 ToolStripItem에서 누락된 요소에 대해 빈 영역이 표시되지 않도록 특수하게 처리됩니다.

표시 스타일

DisplayStyle을 사용하면 항목의 텍스트 및 이미지 속성 값을 설정할 수 있을 뿐 아니라 원하는 항목만 표시할 수도 있습니다. 이 클래스는 일반적으로 동일한 항목을 각기 다른 컨텍스트에 표시할 때 표시 스타일을 변경하는 데 사용됩니다.

부속 클래스

그 밖의 다양한 기능을 제공하는 클래스는 다음과 같습니다.

  • ToolStripManager는 전체 응용 프로그램에 대해 병합, 설정 및 렌더링 옵션과 같은 ToolStrip 관련 작업을 지원합니다.

  • ToolStripRendererToolStrip에 특정 스타일이나 테마를 손쉽게 적용할 수 있도록 합니다.

  • ToolStripProfessionalRenderer는 대체할 수 있는 색상표(ProfessionalColorTable)를 기준으로 펜과 브러시를 만듭니다.

  • ToolStripSystemRendererToolStrip 응용 프로그램에 시스템 색과 평면 비주얼 스타일을 적용합니다.

  • ToolStripContainerSplitContainer와 비슷합니다. 이 클래스에서는 네 개의 가장자리 패널(ToolStripPanel의 인스턴스)과 한 개의 중앙 패널(ToolStripContentPanel의 인스턴스)을 사용하여 일반적인 배열을 만듭니다. 가장자리 패널은 제거할 수 없지만 숨길 수는 있습니다. 중앙 패널을 제거할 수도 없고 숨길 수도 없습니다. 가장자리 패널에는 ToolStrip, MenuStrip 또는 StatusStrip 컨트롤을 하나 이상 배열할 수 있으며 다른 컨트롤에 대한 중앙 패널을 사용할 수 있습니다. ToolStripContentPanel을 사용하면 렌더러 기능을 통해 폼의 본문을 일관된 모양으로 만들 수도 있습니다. ToolStripContainer는 MDI(다중 문서 인터페이스)를 지원하지 않습니다.

  • ToolStripPanelToolStrip 컨트롤을 이동 및 배열하기 위한 공간을 제공합니다. 필요한 경우 한 패널만 사용할 수 있습니다. ToolStripPanel은 MDI 시나리오에서 제대로 작동합니다.

참고 항목

개념

ToolStrip 기술 요약

참조

ToolStrip 컨트롤 개요(Windows Forms)

기타 리소스

ToolStrip 컨트롤(Windows Forms)

MenuStrip 컨트롤(Windows Forms)

StatusStrip 컨트롤

ContextMenuStrip 컨트롤

BindingNavigator 컨트롤(Windows Forms)