次の方法で共有


UndoContext.Open メソッド

元に戻す操作を新しく開始します。

名前空間:  EnvDTE
アセンブリ:  EnvDTE (EnvDTE.dll 内)

構文

'宣言
Sub Open ( _
    Name As String, _
    Strict As Boolean _
)
void Open(
    string Name,
    bool Strict
)
void Open(
    [InAttribute] String^ Name, 
    [InAttribute] bool Strict
)
abstract Open : 
        Name:string * 
        Strict:bool -> unit
function Open(
    Name : String, 
    Strict : boolean
)

パラメーター

  • Name
    型 : String

    必須。 元に戻すコンテキストを提供するプロシージャの名前。

  • Strict
    型 : Boolean

    省略可能。 元に戻すスタックのリンケージが厳密かどうかを示します。 既定値は False です。

解説

Open メソッドを実行しているときに UndoContext オブジェクトが既に開かれている場合は、エラーが発生します。

元に戻すスタックのリンケージが厳密な場合、リンクされた元に戻す兄弟スタックは、すべて同時に元に戻されるか、まったく元に戻されないかのどちらかになります。 元に戻す動作を厳密にリンクする必要があるのは、通常、複数のファイル (ヘッダー ファイルと Visual C++ ファイルなど) にわたるテキストの同時変更を行う場合です。 これは、実際に Visual Studio で使用されているモデルです。 元に戻すスタックのリンクの詳細については、OpenLinkedUndo メソッドのトピックを参照してください。

Sub OpenExample()
   ' 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, don't close it.
   If boolWasOpen = False Then
      ' Close the UndoContext object to commit the changes.
      DTE.UndoContext.Close()
   End If
End Sub

.NET Framework セキュリティ

  • 直前の呼び出し元に対する完全な信頼。このメンバーは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

関連項目

UndoContext インターフェイス

EnvDTE 名前空間