UndoContext, interface
Mise à jour : novembre 2007
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
<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
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.
Remarque : |
---|
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