locked
FAQs: 怎样从VSTO文档删除自定义项? RRS feed

答案

  • Visual Studio Tools for Office提供一个名为ServerDocument的类,它可以访问自定义文档中的缓存数据和应用程序清单。在Office 2003项目中,这个类是通过VSTO SE Runtime来实现的,它包含在Microsoft.VisualStudio.Tools.Application.Runtime命名空间中。同样对于Office 2007项目中,它这个类是通过VSTO 3.0 Runtime来实现的,它包含在Microsoft.VisualStudio.Tools.Application命名空间中。

    因为VSTO 2005 SE RuntimeVSTO Runtime 3.0 的实现是不同的,这两个ServerDocument类的用途是不一致的。然而,对于RemoveCustomization()方法,他们是相同的,仅需要一个字符串类型的参数,该参数指向文档的完整路径,在这个文档中包含想要删除的自定义项。请参考下面的代码达到这些结果:

    private static void Remove(string fileName)

    {

        if (ServerDocument.IsCustomized(fileName))

        {

            ServerDocument.RemoveCustomization(fileName);

            MessageBox.Show("The customization has been removed.");

        }

        else

        {

            MessageBox.Show("The specified document is not " + "customized.");

        }

    }

    相关的论坛帖子:http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/a0cdb75a-b143-47f4-909d-5af529ec704f/

    更多的有关VSTOFAQ,请看:

    http://social.msdn.microsoft.com/Forums/zh-CN/vstudiozhchs/thread/ed10f3de-40bb-4f16-81f9-25ace1f152ba


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年2月28日 9:42
  • 添加VB版本的代码,

    Private Shared Sub Remove(ByVal fileName As String)

        If(ServerDocument.IsCustomized(fileName)) Then

            ServerDocument.RemoveCustomization(fileName)

            MessageBox.Show("The customization has been removed.")

        Else

            MessageBox.Show("The specified document is not " + "customized.")

        End If

    End Sub


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年2月28日 9:49

全部回复

  • Visual Studio Tools for Office提供一个名为ServerDocument的类,它可以访问自定义文档中的缓存数据和应用程序清单。在Office 2003项目中,这个类是通过VSTO SE Runtime来实现的,它包含在Microsoft.VisualStudio.Tools.Application.Runtime命名空间中。同样对于Office 2007项目中,它这个类是通过VSTO 3.0 Runtime来实现的,它包含在Microsoft.VisualStudio.Tools.Application命名空间中。

    因为VSTO 2005 SE RuntimeVSTO Runtime 3.0 的实现是不同的,这两个ServerDocument类的用途是不一致的。然而,对于RemoveCustomization()方法,他们是相同的,仅需要一个字符串类型的参数,该参数指向文档的完整路径,在这个文档中包含想要删除的自定义项。请参考下面的代码达到这些结果:

    private static void Remove(string fileName)

    {

        if (ServerDocument.IsCustomized(fileName))

        {

            ServerDocument.RemoveCustomization(fileName);

            MessageBox.Show("The customization has been removed.");

        }

        else

        {

            MessageBox.Show("The specified document is not " + "customized.");

        }

    }

    相关的论坛帖子:http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/a0cdb75a-b143-47f4-909d-5af529ec704f/

    更多的有关VSTOFAQ,请看:

    http://social.msdn.microsoft.com/Forums/zh-CN/vstudiozhchs/thread/ed10f3de-40bb-4f16-81f9-25ace1f152ba


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年2月28日 9:42
  • 添加VB版本的代码,

    Private Shared Sub Remove(ByVal fileName As String)

        If(ServerDocument.IsCustomized(fileName)) Then

            ServerDocument.RemoveCustomization(fileName)

            MessageBox.Show("The customization has been removed.")

        Else

            MessageBox.Show("The specified document is not " + "customized.")

        End If

    End Sub


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年2月28日 9:49