Поделиться через


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 Возвращает сведения о том, была ли операция объекта UndoContext завершена с помощью метода SetAborted.
Открытое свойство IsOpen Возвращает сведения о том, можно ли выполнить в настоящий момент операцию отмены и открыто ли решение.
Открытое свойство IsStrict Возвращает сведения о том, является ли строгой компоновка стека отмены.
Открытое свойство Parent Получает ближайший родительский объект для объекта UndoContext.

В начало страницы

Методы

  Имя Описание
Открытый метод Close Завершает операцию отмены.
Открытый метод Open Запускает новую операцию отмены.
Открытый метод SetAborted Отменяет все изменения в участвующих открытых документах, внесенные после открытия объекта 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

См. также

Ссылки

EnvDTE - пространство имен