在 c# 中突出显示 Word 文档中的文本

本文关键字:文档 Word 文本 显示 | 更新日期: 2023-09-27 18:34:38

我能够使用我的代码搜索/突出显示word文档中的特定单词。但以下是我面临的问题。

如果搜索词是"it",那么它搜索"it

",也会搜索w"it"。我只想搜索"它"这个词。如何解决此问题?

 private int FindLoop(Word._Application wordApp, object text,
                            Word._Document aDoc,
                            object aComment, out List<string> OccuranceList,
                            bool insertComment)
    {
        int intFound = 0;
        //object start = 0;
        //object end = 1;
        object missing = System.Reflection.Missing.Value;
        object myfile = saveFileDialog.FileName;
        Word.Range rng = wordApp.ActiveDocument.Range(ref missing, ref missing);


        object readOnly = true;
        //object isVisible = true;
        object isVisible = false;
        object oMissing = System.Reflection.Missing.Value;
        string fname = textBox1.Text;

        object matchWholeWord = true;
        OccuranceList = new List<string>();
        object[] Parameters;
        Parameters = new object[15];
        Parameters[0] = text;
        Parameters[1] = missing;
        Parameters[2] = missing;
        Parameters[3] = missing;
        Parameters[4] = missing;
        Parameters[5] = missing;
        Parameters[6] = missing;
        Parameters[7] = missing;
        Parameters[8] = missing;
        Parameters[9] = text;
        Parameters[10] = missing;
        Parameters[11] = missing;
        Parameters[12] = missing;
        Parameters[13] = missing;
        Parameters[14] = missing;
        bool found = false;

        {
            try
            {
                found = (bool)rng.Find.GetType().InvokeMember("Execute", BindingFlags.InvokeMethod, null, rng.Find, Parameters);


            }
            catch (Exception ex)
            {
                MessageBox.Show("Find Loop", ex.Message);
            }


            //while (rng.Find.Found)
            while (found)
            {

                intFound++;
                if (checkBox1.Checked == true)
                {
                    if (fname.ToString().EndsWith("doc") || fname.ToString().EndsWith("docx"))
                    {
                        try
                        {
                            if (rng.Text.Trim() == text.ToString())
                            {

                                // Add a new document 
                                aDoc = wordApp.Documents.Open(fname, ref oMissing,
                                                               ref readOnly, ref oMissing, ref oMissing, ref oMissing,
                                                               ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                                               ref oMissing, ref isVisible, ref oMissing, ref oMissing,
                                                               ref oMissing, ref oMissing);

                                rng.Font.Bold = 1;
                                rng.HighlightColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdDarkRed;
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                    }

                }
     }
  }

在 c# 中突出显示 Word 文档中的文本

您需要在搜索的文本中添加一些通配符。在您的情况下,要查找的文本将是:<it>而不是it。参考你的代码,它应该是这样的:

Parameters[0] = String.Format("<{0}>"; text);

此外,您需要将通配符参数设置为 true:

Parameters[3] = true;

有关更多信息,请查看此链接。