1

我正在打开一个 Word 文档(用户指南),遍历段落,直到找到我想要的那个,然后将窗口滚动到该段落(即“上下文”帮助。)

我遇到的问题是,ScrollIntoView在 Word 呈现新打开的文档时,该方法在短时间内似乎什么也没做。

代码摘录:

var wordDoc = wordApp.Documents.Open(ref filename, ref confirmConversions, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref visible, ref missing, ref missing, ref missing, ref missing);
foreach (Microsoft.Office.Interop.Word.Paragraph paragraph in wordDoc.Paragraphs)
{
    var text = paragraph.Range.Text;
    if (text == headingToScrollTo + "\r")
    {
        wordDoc.ActiveWindow.ScrollIntoView(paragraph.Range);
        break;
    }
}

目前我在方法调用Thread.Sleep(500)之前插入了一个。ScrollIntoView显然,这是一个非常可怕和脆弱的解决方案。在滚动之前等待文档完全呈现的正确方法会更好。

4

1 回答 1

0

感谢 KazJaw!而不是wordDoc.ActiveWindow.ScrollIntoView(paragraph.Range);使用paragraph.Range.Select();

之后我还让它向下滚动了 45 行,因为选择段落只会将它滚动到窗口底部的视图中。

paragraph.Range.Select();
object linesToScroll = 45;
wordDoc.ActiveWindow.SmallScroll(ref linesToScroll, ref missing, ref missing, ref missing);
于 2013-08-22T02:29:37.613 回答