UndoContext 인터페이스
Visual Studio에서 열려 있는 모든 문서에 대해 수행되는 작업을 모두 단일 트랜잭션으로 나타냅니다. SetAborted 메서드가 호출되면 이 개체를 연 후에 변경된 내용이 모두 취소됩니다.
네임스페이스: EnvDTE
어셈블리: EnvDTE(EnvDTE.dll)
구문
‘선언
<GuidAttribute("D8DEC44D-CAF2-4B39-A539-B91AE921BA92")> _
Public Interface UndoContext
[GuidAttribute("D8DEC44D-CAF2-4B39-A539-B91AE921BA92")]
public interface UndoContext
[GuidAttribute(L"D8DEC44D-CAF2-4B39-A539-B91AE921BA92")]
public interface class UndoContext
[<GuidAttribute("D8DEC44D-CAF2-4B39-A539-B91AE921BA92")>]
type UndoContext = interface end
public interface UndoContext
UndoContext 형식에서는 다음과 같은 멤버를 노출합니다.
속성
이름 | 설명 | |
---|---|---|
DTE | 최상위 확장성 개체를 가져옵니다. | |
IsAborted | SetAborted 메서드에 의해 UndoContext 개체 작업이 종료되었는지 여부를 가져옵니다. | |
IsOpen | 실행 취소 작업이 현재 적용되는지 또는 솔루션이 열려 있는지 여부를 가져옵니다. | |
IsStrict | 실행 취소 스택 링크가 strict인지 여부를 가져옵니다. | |
Parent | UndoContext 개체의 직계 개체를 가져옵니다. |
위쪽
메서드
이름 | 설명 | |
---|---|---|
Close | 실행 취소 작업을 끝냅니다. | |
Open | 새로운 실행 취소 작업을 시작합니다. | |
SetAborted | UndoContext 개체를 연 후 열려 있는 문서에서 수행한 모든 변경 내용을 취소합니다. |
위쪽
설명
UndoContext 개체는 _DTE 개체의 UndoContext 속성을 통해 반환됩니다. Visual Studio에는 전체 실행 취소 서비스가 열려 있거나 닫혀 있는 상태로 하나만 있습니다. UndoContext 개체를 연 후에는 이 개체를 닫을 때까지 SetAborted 메서드를 사용한 단일 실행 취소 작업으로 Visual Studio에서 문서의 모든 업데이트 내용을 취소할 수 있습니다. SetAborted 메서드가 호출되면 개체를 연 후에 변경된 내용이 모두 취소됩니다.
UndoContext 개체를 사용하려면 개체를 열고 문서를 변경한 후 개체를 닫아 변경 내용을 종료합니다.
변경 내용을 취소하려면 UndoContext 개체를 닫기 전에 SetAborted 메서드를 호출합니다. UndoContext 개체를 닫은 후에는 변경 내용을 취소할 수 없습니다.
참고
UndoContext 개체를 사용하기 전에 이전 작업에서 이 개체가 이미 열려 있는지 확인하십시오.이미 열려 있으면 관련된 모든 문서의 변경 내용 및 이 개체를 처음 연 이후에 변경된 모든 내용이 취소됩니다.확인할 때 UndoContext 개체가 이미 열려 있으면 이전 호출자에서 이 개체를 사용하여 실행 취소 작업을 수행할 수도 있으므로 개체를 닫으면 안 됩니다.따라서 UndoContext 개체를 직접 열지 않았다면 SetAborted를 호출하고 이 개체를 닫지 않아야 합니다.문서에서 텍스트 변경 작업이 끝난 후 개체를 닫으십시오.
예제
Sub UndoContextExample()
' Before running, select text in an open document.
Dim txtSel As TextSelection
Dim strTS As String, boolWasOpen As Boolean
txtSel = DTE.ActiveDocument.Selection
strTS = txtSel.Text
' Check to see if UndoContext object is already open.
If DTE.UndoContext.IsOpen = True Then
boolWasOpen = True
Else
' Open the UndoContext object to track changes.
DTE.UndoContext.Open("RemoveNewLines", False)
End If
' Perform search for newline characters and remove them.
If strTS <> "" Then
txtSel.Delete()
strTS = Replace(strTS, vbNewLine, "", Compare:=vbTextCompare)
txtSel.Insert(strTS)
End If
' If UndoContext was already open, do not close it.
If boolWasOpen = False Then
' Close the UndoContext object to commit the changes.
DTE.UndoContext.Close()
End If
End Sub