从底部读取文件

时间:2018-11-06 06:56:21

标签: c# ms-word

At very begining these two blue words are red highlighted. When I click button1(Next),it turn first red word to blue and onclicking again the next one red to blue and so on. Now if I click the button2(prev) then it should turn again red but from the back side or you can say the last highlighted one我已经为MS word创建了一个加载项。我有两个按钮。单击首先突出显示一系列单词,使我前进。在第二个按钮上,单击“我要转到上一个突出显示的单词”。任何人都可以在第二按钮功能上帮助我。在按钮上单击一次,我的代码可以正常工作。现在如何在每次单击按钮2时转到以前突出显示的单词范围?

private void adxRibbonButton1_OnClick(object sender, IRibbonControl control, bool pressed)
    {
        object missing = System.Type.Missing;
        Word.Document document = WordApp.ActiveDocument;
        foreach(Word.Range docRange in document.Words)
        {
            if(docRange.HighlightColorIndex.Equals(Microsoft.Office.Interop.Word.WdColorIndex.wdRed))
            {
                docRange.HighlightColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdBlue;
                docRange.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdWhite;
                break;
            }

        }
    }

1 个答案:

答案 0 :(得分:0)

有多种方法可以解决此问题:

  1. 使用Word的内置Find在文档中向后搜索更改的突出显示的第一个实例。

  2. 设置两个书签,一个用于问题中代码的当前位置,另一个用于前一个位置。下面的代码示例适用于此版本。

    string CurrentBkm = "_bkmCurrent";
    string LastBkm= "_bkmLast";
    
        if(docRange.HighlightColorIndex.Equals(Microsoft.Office.Interop.Word.WdColorIndex.wdRed))
        {
            docRange.HighlightColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdBlue;
            docRange.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdWhite;
            if (document.Bookmarks.Exists(CurrentBkm))
            {
                document.Bookmarks.Add(LastBkm, document.Bookmarks[CurrentBkm].Range.Duplicate);
            }
            document.Bookmarks.Add(CurrentBkm, docRange);
            break;
    

button2的代码只需转到书签“ _bkmLast”:

string LastBkm= "_bkmLast";
document.Bookmarks[LastBkm].Range.Select();

请注意,书签名称以下划线_开头。这会将书签隐藏在Word UI中,以防万一应用程序设置显示书签的非打印字符,不会激怒用户。

还要注意,问题中的代码也可以与Word的内置Find功能一起使用,以搜索格式。这几乎肯定比“遍历”文档中的每个单词并测试其突出显示格式的效率更高。如果您要更改代码以使用Find,则我为书签提供的解决方案仍然有效。