2

我怎样才能转换System.Drawing.ColorMicrosoft.Office.Interop.Word.WdColorIndex

到目前为止我已经完成了代码,但它显示错误“溢出”。

这是我所做的代码

Color bgcolor = Color.FromArgb(Convert.ToInt32(innerText));
Microsoft.Office.Interop.Word.WdColorIndex wbgc = (Microsoft.Office.Interop.Word.WdColorIndex)(bgcolor.R + 0x100 * bgcolor.G + 0x10000 * bgcolor.B);
doc.Range(iRangeStart, iRangeEnd).HighlightColorIndex = wbgc;

我怎样才能做到这一点?

4

1 回答 1

4

WdColorIndex是一个枚举,而不是一个定义颜色系统的对象。这意味着您可以分配的值受枚举元素的限制,例如wdBlackorwdBlue及其基础整数值。

您正在使用的技术将应用于WdColor对象而不是WdColorIndex枚举:

var wordColor = (Microsoft.Office.Interop.Word.WdColor)(bgcolor.R + 0x100 * bgcolor.G + 0x10000 * bgcolor.B);

Word 文档中的突出显示仅限于WdColorIndex枚举中定义的多种颜色。因此,您不能简单地将任何颜色转换为 Word 颜色以进行突出显示。您必须选择可用值之一。有关可能的值,请参阅MSDN 的 WdColorIndex

于 2013-04-03T14:52:07.293 回答