Visual studio Visual Studio-如何在运行宏时禁用自动格式化/更正?

Visual studio Visual Studio-如何在运行宏时禁用自动格式化/更正?,visual-studio,macros,autocorrect,Visual Studio,Macros,Autocorrect,运行更改选定文本的宏时,会自动关闭标记并格式化文本。我怎样才能防止这种情况发生 例如,在标记中换行文字: DTE.ActiveDocument.Selection.Text = String.Format("<tag>{0}</tag>", DTE.ActiveDocument.Selection.Text) DTE.ActiveDocument.Selection.Text=String.Format(“{0}”,DTE.ActiveDocument.Selectio

运行更改选定文本的宏时,会自动关闭标记并格式化文本。我怎样才能防止这种情况发生

例如,在标记中换行文字:

DTE.ActiveDocument.Selection.Text = String.Format("<tag>{0}</tag>", DTE.ActiveDocument.Selection.Text)
DTE.ActiveDocument.Selection.Text=String.Format(“{0}”,DTE.ActiveDocument.Selection.Text)
最后有两个结束标记:

<tag>Text</tag></tag>
文本
更奇怪的是,多条线路出现故障:

<li>One</li>
<li>Two</li>
<li>Three</li>
  • 一个
  • 两个
  • 一个最终成为

    <ul>            <li>One</li>
                <li>Two</li>
                            <li>Three</li></li></ul>
    
    • 一个
    • 两个
    • 三个

    我怎样才能防止呢?从上一个示例可以看出,格式错误,还有一个额外的

    我认为唯一的方法是打开一个撤消事务进行编辑。这将暂停所有格式化操作,直到事务完成。这将允许您在格式化之前执行多个编辑操作

    以下是OpenLinkedEndo方法的文档


    您需要插入文本,而不是分配文本:

    Try
        DTE.UndoContext.Open("InsertSomeCode")
        Dim ts As TextSelection = CType(DTE.ActiveDocument.Selection, TextSelection)
        ts.Insert(String.Format("<tag>{0}</tag>", ts.Text))
    Finally
        DTE.UndoContext.Close()
    End Try
    
    试试看
    DTE.UndoContext.Open(“InsertSomeCode”)
    将ts设置为text Selection=CType(DTE.ActiveDocument.Selection,text Selection)
    ts.Insert(String.Format(“{0}”,ts.Text))
    最后
    DTE.UndoContext.Close()
    结束尝试
    
    这里没有示例代码。。。将要撤消宏操作(如果这阻止了该操作的发生,则为)