我希望动态获取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
答案 0 :(得分:1)
VB6在执行变量类型方面出了名的不好 - 它会跳过看不见的环,试图将一种类型的数据填充到不同类型的变量中,通常是错误的。
C#对类型转换更加严格,99.9%的情况下这是一件好事。在这种特殊情况下,看起来两个枚举具有相同的值,因此您只需要添加一个显式的强制转换:
oCustDict.LanguageID = (Microsoft.Office.Interop.Word.WdLanguageID)WordApp.Language;