【问题标题】:How to get the input cursor position in Winforms WebBrowser Control?如何在 Winforms WebBrowser 控件中获取输入光标位置?
【发布时间】:2019-03-08 10:31:00
【问题描述】:

我们使用 Winforms WebBrowser Control 作为简单的编辑器。

有没有办法获取输入光标在文本中的位置(文本中的字符位置)。 (不在输入栏中)

我需要什么?
我需要在 WebBrowser 控件中实现SelectionStart。 (输入光标在哪里)

我为什么需要这个?
由于 RichtText 控件不支持带有替代链接文本的正确链接,因此我们需要 WebBrowser 控件作为替代编辑器。

编辑
我的最终目标是在光标放在链接上而不用户单击链接时在光标所在位置检索链接数据(例如“example.com”)。就我而言,没有真正的链接,而是程序逻辑中使用的元数据。 (例如:am12rp12300rt147600)而不是像提到的“example.com”这样的真实链接

【问题讨论】:

  • 抱歉,您的意思是输入光标在 url 栏中的位置?
  • @AlexandreCastro 不,在正文中。我编辑了这个问题。谢谢!
  • 您能解释一下为什么需要这个吗?我正在想办法解决您的问题。
  • @AlexandreCastro 我编辑了我的帖子
  • @marsh-wiggle TextBox 有两个属性/方法SelectionStartGetCharIndex,它们是不同的。您要为可编辑的 DIV 元素实现哪一个?

标签: c# vb.net winforms webbrowser-control


【解决方案1】:

您可以通过 Javascript 获取输入光标位置。

  1. 您的 html 文件中的 Javascript:
function insertAtCursor(myValue) {
    //IE support
    if (document.selection) {        
        sel = document.selection.createRange();
        sel.text = myValue;     
    }       
}
  1. 在光标处插入文本
Dim result As String = WebBrowser1.Document.InvokeScript("insertAtCursor", New [Object]() {"TEST"})
  1. 从我的博客下载源代码

Source code insert text at cursor (VB.NET)

【讨论】:

  • 链接自己的网站时需要添加披露。见how not to be a spammer
  • 如果文本出现多次,如何避免错误结果?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-27
  • 1970-01-01
  • 2011-02-04
相关资源
最近更新 更多