WebBrowser 文本选择更改时触发事件
Posted
技术标签:
【中文标题】WebBrowser 文本选择更改时触发事件【英文标题】:Trigger event when WebBrowser text selection changed 【发布时间】:2017-07-24 11:52:13 【问题描述】:我的程序的两个部分是一个winforms WebBrowser
和一个简单的TextBox
。
我现在想要的是,当我在WebBrowser
中选择一个文本时,它会自动复制TextBox
中的选定文本。
我在 google 上找不到任何关于此的信息,所以如果有人可以帮助我,我会很高兴!
【问题讨论】:
【参考方案1】:您可以使用文档的AttachEventHandler
方法将事件处理程序附加到WebBrowser
控件的Document
的onselectionchange
事件。然后您可以使用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;
【讨论】:
【参考方案2】:您可以试试这个,但这需要一个触发器示例,即单击按钮以将值传递到您的 TextBox1。很遗憾,WebBrowser 控件不支持鼠标事件。
dynamic document = webBrowser1.Document.DomDocument;
dynamic selection = document.selection;
dynamic text = selection.createRange().text;
TextBox1.Text = text;
【讨论】:
我已经在其他帖子中读到过,但是我怎么知道什么时候选择了?我不能只运行这个方法而不得到选择改变的信息 遗憾的是,WebBrowser 控件不支持鼠标事件@MartinNiederl 我知道,这就是我问这个问题的原因,因为会有办法做到这一点:D以上是关于WebBrowser 文本选择更改时触发事件的主要内容,如果未能解决你的问题,请参考以下文章
VB.NET WebBrowser 控件 OnClick 事件未触发
为啥 WebBrowser_DocumentCompleted() 触发两次?
Ajax AutoCompleteExtender文本框未在边缘浏览器中触发文本更改事件