作为this suggestion我使用以下代码突出显示webBrowser中的所选文字:
using mshtml;
if (webBrowser1.Document != null)
{
IHTMLDocument2 document = webBrowser1.Document.DomDocument as IHTMLDocument2;
if (document != null)
{
IHTMLSelectionObject currentSelection = document.selection;
IHTMLTxtRange range = currentSelection.createRange() as IHTMLTxtRange;
if (range != null)
{
string oldText = range.text.Replace("\n", "</br>");
string newHtmlText = "<span style='background-color: rgb(255, 255, 0);'>" +oldText + "</span>";
range.pasteHTML(newHtmlText);
}
}
}
选择普通文本时,每件事都可以。但正如您在此图像中看到的,当选择某些混合文本时,它会损坏文档。
有时,所选文本可能包含表格和其他格式化文本。如何在不更改格式的情况下突出显示文档的任何部分?
答案 0 :(得分:1)
我找到了答案。
mshtml
具有管理文字的完整选项。 Here是execCommand的语法,可以对文档进行任何更改。
通过这种方式,您不需要自己解析html或khnow关于html元素。
using mshtml;
if (webBrowser1.Document != null)
{
IHTMLDocument2 document = webBrowser1.Document.DomDocument as IHTMLDocument2;
if (document != null)
{
IHTMLSelectionObject currentSelection = document.selection;
IHTMLTxtRange range = currentSelection.createRange() as IHTMLTxtRange;
if (range != null)
{
range.execCommand("BackColor", false, "FFFF00");
}
}
}