我目前正在使用以下方法Range
在文档中查找 a 的坐标:
private Rectangle GetRangeCoordinates(Window w, Range r)
{
int left = 0;
int top = 0;
int width = 0;
int height = 0;
w.GetPoint(out left, out top, out width, out height, r);
return new Rectangle(left, top, width, height);
}
这非常有效,除非它Range
以相当大的距离(相当多的页面)离开屏幕,在这种情况下我得到以下异常:
System.Runtime.InteropServices.COMException (0x800A1066): 命令在 [ProjectName].[TaskpaneName]处的 Microsoft.Office.Interop.Word.Window.GetPoint(Int32& ScreenPixelsLeft, Int32& ScreenPixelsTop, Int32& ScreenPixelsWidth, Int32& ScreenPixelsHeight, Object obj) 失败。 GetRangeCoordinates(Window w, Range r) in [...somePath...][TaskpaneName] .cs:line 66
有没有办法确定 aRange
是否在屏幕上,以便我只能在它出现时调用此方法?