如何动态获取Word的语言ID

时间:2015-07-21 17:38:38

标签: c# ms-word

我希望动态获取Word的语言ID并将其分配给Custom Dictionaries语言ID。当我知道Word使用的语言 Word.WdLanguageID.wdEnglishUS ;时,我可以这样做。但是如何动态地获得它。我尝试如下,但得到一个投射错误。我可以在VB6中轻松完成这项工作,但需要c#中的解决方案。

  

无法将类型'Microsoft.Office.Core.MsoLanguageID'隐式转换为'Microsoft.Office.Interop.Word.WdLanguageID'

C#

oCustDict.LanguageSpecific = true;
oCustDict.LanguageID = WordApp.Language;

VB6 - 工作

Dim lCurrentLanguage As Long
CurrentLanguage = WordApp.Language
oCustDict.LanguageSpecific = True
oCustDict.LanguageID = lCurrentLanguage

1 个答案:

答案 0 :(得分:1)

VB6在执行变量类型方面出了名的不好 - 它会跳过看不见的环,试图将一种类型的数据填充到不同类型的变量中,通常是错误的。

C#对类型转换更加严格,99.9%的情况下这是一件好事。在这种特殊情况下,看起来两个枚举具有相同的值,因此您只需要添加一个显式的强制转换:

oCustDict.LanguageID = (Microsoft.Office.Interop.Word.WdLanguageID)WordApp.Language;