UndoContext-Schnittstelle

Stellt als einzelne Transaktion alle Vorgänge dar, die in allen beteiligten geöffneten Dokumenten in Visual Studio durchgeführt werden. Wenn die zugehörige SetAborted-Methode aufgerufen wird, werden alle Änderungen verworfen, die nach dem Öffnen des Objekts vorgenommen wurden.

Namespace:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)

Syntax

'Declaration
<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

Der UndoContext-Typ macht die folgenden Member verfügbar.

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft DTE Ruft das Erweiterbarkeitsobjekt der obersten Ebene ab.
Öffentliche Eigenschaft IsAborted Stellt fest, ob der für das UndoContext-Objekt ausgeführte Vorgang von der SetAborted-Methode beendet wurde.
Öffentliche Eigenschaft IsOpen Stellt fest, ob derzeit ein Rückgängig-Vorgang aktiv oder eine Projektmappe geöffnet ist.
Öffentliche Eigenschaft IsStrict Stellt fest, ob die Bindung des Rückgängig-Stapels strikt ist.
Öffentliche Eigenschaft Parent Ruft das unmittelbar übergeordnete Objekt eines UndoContext-Objekts ab.

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode Close Beendet einen Rückgängig-Vorgang.
Öffentliche Methode Open Startet einen neuen Rückgängig-Vorgang.
Öffentliche Methode SetAborted Verwirft alle Änderungen an den beteiligten, geöffneten Dokumenten, die seit dem Öffnen des UndoContext-Objekts vorgenommen wurden.

Zum Seitenanfang

Hinweise

Das UndoContext-Objekt wird von der UndoContext-Eigenschaft des _DTE-Objekts zurückgegeben. In Visual Studio ist nur ein globaler Rückgängig-Dienst vorhanden, der entweder geöffnet oder geschlossen ist. Nachdem das UndoContext-Objekt geöffnet wurde, können alle in Visual Studio an Dokumenten vorgenommenen Aktualisierungen mit einer einzigen Rückgängig-Aktion, der SetAborted-Methode, rückgängig gemacht werden, bis das Objekt geschlossen wird. Wenn die SetAborted-Methode aufgerufen wird, werden alle Änderungen verworfen, die nach dem Öffnen des Objekts vorgenommen wurden.

Um das UndoContext-Objekt zu verwenden, öffnen Sie es, nehmen Änderungen am Dokument vor und schließen das Objekt dann, um die Änderungen abzuschließen.

Um die Änderungen zu verwerfen, rufen Sie die SetAborted-Methode vor dem Schließen des UndoContext-Objekts auf. Nachdem Sie das UndoContext-Objekt geschlossen haben, können die Änderungen nicht mehr rückgängig gemacht werden.

Tipp

Überprüfen Sie vor Verwendung des UndoContext-Objekts, ob es durch einen vorherigen Vorgang bereits geöffnet wurde. Wenn es bereits geöffnet ist, werden die Änderungen in allen beteiligten Dokumenten sowie alle Änderungen, die nach dem ersten Öffnen des Objekts vorgenommen wurden, rückgängig gemacht. Wenn das UndoContext-Objekt bei der Überprüfung bereits geöffnet ist, sollten Sie es nicht schließen, da es vom vorherigen Aufrufer weiterhin für einen Rückgängig-Vorgang benötigt wird. Folglich sollten Sie SetAborted nur aufgerufen und das UndoContext-Objekt anschließend schließen, wenn es ursprünglich auch von Ihnen geöffnet wurde. Schließen Sie das Objekt, nachdem die Textänderungen in den Dokumenten abgeschlossen sind.

Beispiele

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

Siehe auch

Referenz

EnvDTE-Namespace