다음을 통해 공유


디자이너에 실행 취소 지원 제공

일반적으로 편집기처럼 디자이너는 사용자가 코드 요소를 수정할 때 최근 변경 내용을 되돌릴 수 있도록 실행 취소 작업을 지원해야 합니다.

Visual Studio에서 구현된 대부분의 디자이너는 환경에 의해 자동으로 "실행 취소" 기능을 제공합니다.

실행 취소 기능에 대한 지원을 제공해야 하는 디자이너 구현:

.NET Framework를 사용하여 디자이너를 작성하는 방법에 대한 자세한 내용은 Design-Time 지원 확장을 참조하세요.

Visual Studio SDK는 다음을 통해 기본 실행 취소 인프라를 제공합니다.

실행 취소 지원을 자동으로 획득하기

Visual Studio에서 만든 모든 디자이너는, 디자이너일 경우 자동 및 전체 실행 취소 지원을 제공합니다.

  • 사용자 인터페이스에 Control 기반 클래스를 사용합니다.

  • 코드 생성 및 지속성을 위해 표준 CodeDOM 기반 코드 생성 및 구문 분석 시스템을 사용합니다.

    Visual Studio CodeDOM 지원 작업에 대한 자세한 내용은 동적 소스 코드 생성 및 컴파일을 참조하세요.

디자이너 실행 취소를 명시적으로 지원하는 경우

디자이너는 Control에서 제공된 것이 아닌 뷰 어댑터라는 그래픽 사용자 인터페이스를 사용하는 경우, 자체적인 undo 관리를 해야 합니다.

예를 들어 .NET Framework 기반 그래픽 인터페이스가 아닌 웹 기반 그래픽 디자인 인터페이스를 사용하여 제품을 만들 수 있습니다.

이러한 경우, 이 뷰 어댑터를 Visual Studio에 ProvideViewAdapterAttribute로 등록하고 명시적인 실행 취소 관리 기능을 제공해야 합니다.

디자이너는 이름 공간에 제공된 System.CodeDom Visual Studio 코드 생성 모델을 사용하지 않는 경우 CodeDOM 및 지속성 지원을 제공해야 합니다.

디자이너의 실행 취소 지원 기능

환경 SDK는 사용자 인터페이스를 위해 Control 기반 클래스나 표준 CodeDOM 및 지속성 모델을 사용하지 않는 디자이너들이 사용할 수 있도록 필요한 인터페이스에 대한 기본 구현을 제공하여 실행 취소 지원을 제공합니다.

OleUndoEngine 클래스는 실행 취소 작업을 관리하기 위해 IOleUndoManager 클래스의 구현을 사용하여 .NET Framework UndoEngine 클래스에서 파생됩니다.

Visual Studio는 디자이너 실행 취소에 다음 기능을 제공합니다.

환경 SDK는 다음을 제공하여 CodeDOM 및 지속성 지원을 제공합니다.

환경 SDK 기능을 사용하여 실행 취소 지원 제공

실행 취소 지원을 얻으려면 디자이너를 구현하는 개체가 유효한 OleUndoEngine 구현을 사용하여 클래스 인스턴스 IServiceProvider 를 인스턴스화하고 초기화해야 합니다. 이 IServiceProvider 클래스는 다음 서비스를 제공해야 합니다.

디자이너가 OleUndoEngine 기반의 실행 취소 메커니즘을 구현할 때, 다음과 같은 경우 변경 내용을 자동으로 추적합니다.