当WebBrowser文本选择更改时触发事件

3

我的程序有两个部分:一个是winforms的WebBrowser,另一个是一个简单的TextBox

现在我想做的是当我在WebBrowser中选择文本时,它自动将所选文本复制到TextBox中。

我在谷歌上没找到相关资料,所以希望有人能帮助我!

2个回答

4
你可以使用文档的onselectionchange事件,通过文档的DocumentWebBrowser控件的AttachEventHandler方法添加事件处理程序。然后,您可以使用DomDocument的属性获取所选文本。 示例
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{
    webBrowser1.Document.AttachEventHandler("onselectionchange", selectionchange);
}
private void selectionchange(object sender, EventArgs e) 
{
    dynamic document = webBrowser1.Document.DomDocument;
    dynamic selection = document.selection;
    dynamic text = selection.createRange().text;
    this.textBox1.Text= (string)text;
}

0
你可以尝试这个方法,但是需要一个触发器,例如按钮点击,才能将值传递到你的TextBox1。不幸的是,WebBrowser控件不支持鼠标事件。
 dynamic document = webBrowser1.Document.DomDocument;
 dynamic selection = document.selection;
 dynamic text = selection.createRange().text;
 TextBox1.Text = text;

我已经在其他帖子中读到过这个问题,但是我如何知道什么时候被选中?我不能只是运行此方法而不获取选择更改的信息。 - Martin Niederl
鼠标事件在WebBrowser控件中不幸地不被支持。@MartinNiederl - Willy David Jr
我知道,这就是我问这个问题的原因,因为肯定有方法可以做到这一点 :D - Martin Niederl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接