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