在WebBrowser控件中未选中/突出显示TextRange

时间:2015-05-24 12:18:38

标签: javascript c# winforms range webbrowser-control

我尝试在webbrowser控件中选择(突出显示)文本,我使用了以下代码。当用户选择单词并单击按钮时,必须选择并突出显示句子的其余部分(在此代码中),但不突出显示任何内容。

range.htmlText显示包含父元素的HTML以及从选择开始到结尾的句子,但没有突出显示任何内容,execCommand只是在手动选择的单词上运行!

if (webBrowser1.Document != null)
{
    IHTMLDocument2 doc =
        webBrowser1.Document.DomDocument as IHTMLDocument2;
    IHTMLBodyElement body = doc.body as IHTMLBodyElement;
    if (body != null)
    {
        IHTMLTxtRange range;
        if (doc.selection != null)
        {               
            if (doc.selection.type == "Text")
            {                        
               range = doc.selection.createRange() as IHTMLTxtRange;
               range.moveEnd("sentence"); //word, character,....
               range.select();
               webBrowser1.Document.ExecCommand("cut", true, null);
            }
        }


    }
}

1 个答案:

答案 0 :(得分:0)

在我的情况下,body元素visibility设置为hidden

如果WebBrowser元素或body的父元素不可见(selection

,则style.visibility = "hidden"控件中的选择突出显示可能无效