UndoContext - интерфейс
Обновлен: Ноябрь 2007
Представляет все операции, выполняемые со всеми участвующими документами, открытыми в среде Visual Studio, как одну транзакцию. При вызове метода SetAborted все изменения, сделанные с момента открытия объекта, будут отменены.
Пространство имен: EnvDTE
Сборка: EnvDTE (в EnvDTE.dll)
Синтаксис
'Декларация
<GuidAttribute("D8DEC44D-CAF2-4B39-A539-B91AE921BA92")> _
Public Interface UndoContext
'Применение
Dim instance As UndoContext
[GuidAttribute("D8DEC44D-CAF2-4B39-A539-B91AE921BA92")]
public interface UndoContext
[GuidAttribute(L"D8DEC44D-CAF2-4B39-A539-B91AE921BA92")]
public interface class UndoContext
public interface UndoContext
Заметки
Объект UndoContext возвращается свойством UndoContext объекта _DTE. В среде Visual Studio существует только одна глобальная служба отмены, которая либо открыта, либо закрыта. После открытия объекта UndoContext все обновления, выполняемые в документах в среде Visual Studio, могут быть отменены с помощью одного действия отмены — метода SetAborted, который может выполняться до закрытия объекта. При вызове метода SetAborted все изменения, сделанные с момента открытия объекта, будут отменены.
Чтобы использовать объект UndoContext, откройте его, внесите изменения в документ и закройте объект, чтобы завершить внесение изменений.
Чтобы отменить изменения, вызовите метод SetAborted до закрытия объекта UndoContext. После закрытия объекта UndoContext отменить изменения невозможно.
![]() |
---|
Перед использованием объекта UndoContext следует проверить, не был ли он открыт при выполнении предыдущей операции. Если объект уже открыт, то изменения будут отменены во всех участвующих документах, включая изменения, внесенные с момента первого открытия объекта. Если при проверке выясняется, что объект UndoContext уже открыт, закрывать его не следует, поскольку предыдущему вызывающему объекту он необходим для операции отмены. Поэтому не следует вызывать метод SetAborted, а затем закрывать объект UndoContext, если только он не был открыт тем же пользователем. Объект следует закрыть лишь после внесения изменений в текст документов. |
Примеры
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