You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VB.NET的Word VSTO插件中检查撤销按钮是否禁用?

在Word VSTO插件中检查撤销按钮状态及撤销记录的方法

在VB.NET开发的Word VSTO插件里,你可以通过两种方式实现需求:一种是直接检查快速访问工具栏中撤销按钮的启用状态,另一种是直接查询撤销记录的数量,后者更高效直接。

方法一:检查撤销按钮的启用状态

利用Office对象模型的CommandBars.GetEnabledMso方法,直接获取内置撤销命令的启用状态,无需定位具体工具栏元素:

Imports Microsoft.Office.Interop.Word

Public Class ThisAddIn
    Private Sub CheckUndoButtonStatus()
        ' 获取撤销按钮的启用状态,Undo是该命令的内置IDMso标识
        Dim isUndoEnabled As Boolean = Application.CommandBars.GetEnabledMso("Undo")
        
        If Not isUndoEnabled Then
            ' 撤销按钮禁用,说明无撤销记录
            ' 在此执行你的业务逻辑
        End If
    End Sub
End Class

方法二:直接查询撤销记录数量

Word对象模型提供了UndoList集合,通过其Count属性可直接判断是否存在可撤销操作,这是更直接的方式:

Imports Microsoft.Office.Interop.Word

Public Class ThisAddIn
    Private Sub CheckUndoRecords()
        Dim undoRecordCount As Integer = Application.UndoList.Count
        
        If undoRecordCount = 0 Then
            ' 无撤销记录,对应撤销按钮禁用状态
            ' 在此执行你的业务逻辑
        End If
    End Sub
End Class

注意事项

  • GetEnabledMso方法的参数是Office内置命令的IDMso字符串,撤销命令的固定标识为"Undo",不受用户自定义工具栏布局影响。
  • 优先使用方法二,因为它直接针对撤销记录本身,避免了UI状态判断可能存在的延迟或异常。

内容的提问来源于stack exchange,提问作者user7391836

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 09:37:06