MS Word Interop - 隐藏内容控件占位符文本但保留内容控件

时间:2016-02-24 10:47:33

标签: c# ms-word interop word-contentcontrol

我有一个包含内容控件的表。一旦我填充了我的表格,我删除所有内容控件而不删除实际内容,除了我保留的第一行,以便我可以使用它,如果我想重新填充表格。问题是有时第一行中的行没有值,因此显示灰色文本。 结果看起来像这样 -

enter image description here

是否可以隐藏内容控件(特别是灰色文本)但不能完全删除它,以便我以后可以使用它?我尝试了从设置文本颜色到隐藏内容控件的字体,但没有达到我想要的结果。

1 个答案:

答案 0 :(得分:1)

灰色文本的技术术语是"占位符文本"。您可以使用一些基本方法:

  1. 内置文档样式名为"占位符文本"。您可以将其Font.Hidden属性设置为True,这样,当您仍然在屏幕上看到它时,它将无法打印。
  2. 执行此操作的代码:

    ActiveDocument.Styles("Placeholder text").Font.Hidden = True
    'To change it back
    'ActiveDocument.Styles("Placeholder text").Font.Hidden = False
    
    1. 您还可以将占位符文本设置为单个空格,从而有效地隐藏内容控件。它仍然存在,但你必须知道它是为了定位它(点击它)。
    2. 示例代码:

      Sub TogglePlaceholderText()
        Dim cc As word.ContentControl
        Dim sAltPlaceholder As String
      
        'Before running this macro make sure the placeholder
        'is written to the content control's Tag property
        sAltPlaceholder = " "
        Set cc = ActiveDocument.SelectContentControlsByTitle("CC_Test").Item(1)
        If cc.ShowingPlaceholderText And cc.Tag = cc.PlaceholderText Then
          cc.SetPlaceholderText Text:=sAltPlaceholder
        Else
          cc.SetPlaceholderText Text:=cc.Tag
        End If
      End Sub
      
      1. SO的技术偏离主题,但您也可以手动更改占位符。在“开发人员工具”选项卡中,“控制”组单击“#34;设计模式"”。更改"标记之间的文字"小心不要先删除那里的内容。这样你就不会丢失"占位符文本"样式格式,以便保留灰色。 (请注意,它至少需要一个字符,但它可以是一个空格)。点击"设计模式"再次。
      2. 与宏代码类似,您还可以更改"占位符文本"的定义。使用样式管理工具直接在UI中设置样式。