DateDisplayFormat不会更改Word

时间:2016-05-19 10:15:50

标签: c# .net ms-word ms-office

我有一个MS Word模板,其中我有一个日期时间内容控件。我在从UI更改语言后,单击按钮设置日期。

这就是我做的......

foreach (var cc in dateCCs.Where(cc => cc.ContentControl.Type == Word.WdContentControlType.wdContentControlDate))
{
  cc.ContentControl.DateDisplayFormat = lng.DateFormat;
  cc.ContentControl.DateDisplayLocale = (Word.WdLanguageID)lng.CorrectionLanguage;
}

现在,当我更改语言时,内容控件的区域设置会被更改,但格式不会更改。有人可以帮我吗?

更新

以下是答案 1)请描述如何在Word模板中创建(se)内容控件(设置); 我不知道。它们在模板中。

2)你的代码片段中有什么内容; lng是一个包含上述两个属性的数据库对象映射器。

3)请提供您开始使用的语言和日期格式的示例 英语日期格式为d MMMM yyyy,德语日期格式为d。 MMMM yyyy(注意点)

4)您对最终结果的期望 我希望内容控件更改日期格式,就像更改区域设置一样

更新2:

进一步的调查结果表明,这与Word的编辑语言有关。这是场景。

  1. 如果我的编辑语言是丹麦语。当我尝试将DateDisplayFormat设置为Deutsch(德语)时,它不会发生变化。

  2. 如果我的编辑语言是Deutsch。反之亦然

  3. 但如果我的编辑语言是英国英语。效果很好。

  4. 这是MS Word中的错误吗?

1 个答案:

答案 0 :(得分:0)

由于您使用的是长日期格式(拼写了月份),因此当您更改区域设置时,Word无法将内容识别为有效日期。例如,März和March。

因此,您需要做的是首先将显示日期更改为与语言无关的“中性”格式,然后再更改区域设置,然后再显示数据。

例如:

cc.DateDisplayFormat = "d-M-yyyy"
cc.DateDisplayLocale = 2055 'Swiss German
cc.DateDisplayFormat = "d. MMMM yyyy"