Share via


UndoContext, interface

Représente, sous la forme d'une transaction unique, toutes les opérations effectuées dans les documents ouverts dans Visual Studio. Si la méthode SetAborted de l'objet est appelée, toutes les modifications apportées depuis son ouverture sont ignorées.

Espace de noms :  EnvDTE
Assembly :  EnvDTE (dans EnvDTE.dll)

Syntaxe

'Déclaration
<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

Le type UndoContext expose les membres suivants.

Propriétés

  Nom Description
Propriété publique DTE Obtient l'objet d'extensibilité de niveau supérieur.
Propriété publique IsAborted Obtient une valeur indiquant si l'opération exécutée par l'objet UndoContext a été arrêtée par la méthode SetAborted.
Propriété publique IsOpen Obtient une valeur indiquant si une opération d'annulation est actuellement appliquée ou si une solution est ouverte.
Propriété publique IsStrict Obtient une valeur indiquant si la liaison de la pile d'annulation est stricte.
Propriété publique Parent Obtient l'objet parent immédiat d'un objet UndoContext.

Début

Méthodes

  Nom Description
Méthode publique Close Termine une opération d'annulation.
Méthode publique Open Démarre une nouvelle opération d'annulation.
Méthode publique SetAborted Ignore toutes les modifications effectuées dans les documents ouverts depuis l'ouverture de l'objet UndoContext.

Début

Notes

L'objet UndoContext est retourné par la propriété UndoContext de l'objet _DTE. Visual Studio ne propose qu'un seul service d'annulation global, qui est soit ouvert, soit fermé. Une fois que l'objet UndoContext est ouvert, toutes les mises à jour effectuées dans les documents Visual Studio peuvent être annulées en une seule opération d'annulation, via la méthode SetAborted, jusqu'à la fermeture de l'objet. Si la méthode SetAborted est appelée, toutes les modifications apportées depuis l'ouverture de l'objet sont ignorées.

Pour utiliser l'objet UndoContext, ouvrez-le, procédez aux modifications voulues dans les documents, puis fermez l'objet pour valider les modifications.

Pour ignorer les modifications, appelez la méthode SetAborted avant de fermer l'objet UndoContext. Une fois l'objet UndoContext fermé, il n'est plus possible d'annuler les modifications.

Notes

Avant d'utiliser l'objet UndoContext, vérifiez d'abord s'il n'a pas déjà été ouvert lors d'une opération précédente. S'il est déjà ouvert, toutes les modifications apportées aux documents concernés seront annulées, ainsi que les modifications effectuées depuis la première ouverture de l'objet. Si l'objet UndoContext est déjà ouvert lors de la vérification, ne le fermez pas, car l'appelant initial en a encore besoin pour une opération d'annulation. Par conséquent, vous ne devez pas appeler SetAborted ni fermer l'objet UndoContext, sauf si vous êtes à l'origine de son ouverture. Fermez-le après avoir procédé aux modifications dans les documents.

Exemples

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

Voir aussi

Référence

EnvDTE, espace de noms