디자이너를 실행 취소 지원
일반적으로 디자이너, 편집기와 같은 코드 요소를 수정 하는 경우 사용자가 최근 변경 내용이 되돌릴 수 있도록 실행 취소 작업을 지원 해야 합니다.
Visual Studio 구현 되는 대부분의 디자이너 환경에서 자동으로 제공 하는 실행 취소 지원을 해야 합니다.
실행 취소 기능을 지원 하기 위해 필요한 디자이너 구현 합니다.
추상 기본 클래스를 구현 하 여 실행 취소 관리 기능 제공UndoEngine
공급 지 속성 및 Codedom을 지원 구현 하 여는 IDesignerSerializationService 및 IComponentChangeService 클래스입니다.
디자이너를 사용 하 여 쓰기에 대 한 자세한 내용은 .NET Framework를 참조 하십시오 디자인 타임 지원 확장.
Visual Studio SDK 기본 실행 취소 인프라에서 제공 합니다.
실행 취소 관리 구현을 제공 하는 OleUndoEngine 및 UndoUnit 클래스입니다.
지 속성 및 CodeDOM 지원을 통해 기본 제공 CodeDomComponentSerializationService 및 IComponentChangeService 구현 합니다.
실행 취소 지원 자동으로 얻기
모든 디자이너에서 만든 Visual Studio 자동 및 전체 실행 취소를 지원 하려면 디자이너:
이용은 Control 클래스는 사용자 인터페이스를 기반으로 합니다.
코드 생성 및 지 속성에 대 한 CodeDOM 기반 표준 코드를 생성 하 고 구문 분석 시스템을 사용합니다.
Visual Studio CodeDOM 지원 사용한 작업에 대 한 자세한 내용은 다음을 참조 하십시오.동적 소스 코드 생성 및 컴파일
명시적 디자이너 실행 취소 지원 사용 하는 경우
디자이너 들에 의해 제공 되는 뷰 어댑터 라고 하는 그래픽 사용자 인터페이스를 사용 하는 경우 직접 실행 취소 관리 제공 해야 Control.
이러한 예는 제품 웹 기반 그래픽 디자인 인터페이스를 만들 수 있습니다 대신에 .NET Framework 그래픽 인터페이스를 기반으로 합니다.
이러한 경우에는이 뷰 어댑터를 등록 하려면 필요한 Visual Studio 를 사용 하 여 ProvideViewAdapterAttribute, 명시적 실행 취소 관리를 제공 하 고 있습니다.
디자이너 해야 CodeDOM 및 지 속성을 사용 하지 않는 경우 지원 제공 하는 Visual Studio 코드 생성 모델에 제공 되는 System.CodeDom 이름 공간입니다.
실행 취소 지원 기능을 디자이너
제공 하는 데 필요한 인터페이스의 기본 구현을 실행 취소 아닙니다를 사용 하 여 디자이너에서 사용할 수 있는 지원 환경 SDK를 제공 Control 또는 해당 사용자 인터페이스 표준 CodeDOM 및 지 속성 모델 클래스를 기반으로 합니다.
OleUndoEngine 클래스에서 파생의 .NET FrameworkUndoEngine 클래스의 구현을 사용은 IOleUndoManager 실행 취소 작업을 관리 하는 클래스입니다.
Visual Studio 디자이너 실행 취소 하려면 다음 기능을 제공합니다.
여러 디자이너 전체에서 연결 된 실행 취소 기능이 있습니다.
디자이너 내에서 자식 단위 작용으로 부모를 구현 하 여 IOleUndoUnit 및 IOleParentUndoUnit 에서 UndoUnit.
CodeDOM 및 지 속성을 제공 하 여 지원 환경 SDK를 제공 합니다.
A IComponentChangeService 에서 제공 되는 Visual Studio디자인 호스트입니다.
공급 실행 취소 지원 환경 SDK 기능을 사용 하 여
실행 취소 지원을 얻기 위해 디자이너를 구현 하는 개체를 해야 합니다.
인스턴스화 및 초기화의 인스턴스는 OleUndoEngine 클래스에 잘못 된 IServiceProvider 구현.
이 IServiceProvider 클래스는 다음과 같은 서비스를 제공 해야 합니다.
-
디자이너를 사용 하 여 Visual Studio CodeDOM serialization 사용 하도록 선택할 수 있습니다 CodeDomComponentSerializationService 함께 제공 되는 Visual Studio SDK 의 구현으로는 IDesignerSerializationService.
이 경우에 IServiceProvider 클래스에 제공 되는 OleUndoEngine 생성자로 구현 하는이 개체를 반환 합니다는 IDesignerSerializationService 클래스.
-
기본값을 사용 하 여 디자이너 DesignSurface 제공 되는 Visual Studio 디자인 호스트의 기본 구현을 포함 하는 보장 된는 IComponentChangeService 클래스입니다.
디자이너가 구현 하는 OleUndoEngine 기반된 실행 취소 메커니즘 자동 추적 변경 하는 경우:
속성 변경는 TypeDescriptor 개체입니다.
IComponentChangeService이벤트를 취소할 수 있는 변경 커밋될 때에 수동으로 생성 됩니다.
수정 디자이너의 컨텍스트 내에서 생성 된 DesignerTransaction.
디자이너에서의 구현으로 제공 되는 표준 실행 취소 단위 하나를 사용 하 여 실행 취소 단위를 명시적으로 만들 하기로 UndoUnit 또는 Visual Studio 따라 구현 UndoUnit, 파생 되는에서 UndoUnit 는 구현 하는 두 가지 모두를 제공 하 고 IOleUndoUnit 및 IOleParentUndoUnit.