我们在c#winforms中使用WebBrowser控件,并且需要能够获取有关光标所在的Url的信息。
所以我们在设计模式下有一个网页,它有多个网址,当光标超过一个时,我想调用一个方法来返回链接的id。
由于
答案 0 :(得分:2)
您可以使用IHTMLCaret
使用IMarkupPointer
从那里获取光标位置,您可以获取当前范围内的元素。
答案 1 :(得分:0)
webBrowser控件具有Document属性,该属性具有Links集合。每个链接都是一个HTMLElement,它包含您可以使用的事件。再说一次,我不确定你的意思是什么“光标”,因为在网络世界中,除非你在文本框中,否则确实没有“光标”(这是我在评论中要提出的)但是你可以点击MouseOver事件和其他类似的东西。
示例:
foreach (HtmlElement element in this.webBrowser1.Document.Links)
{
element.MouseOver += (o, ex) =>
{
Console.WriteLine(ex.ToElement.GetAttribute("HREF"));
};
}
这将打印出鼠标结束的实际网址。
答案 2 :(得分:0)
您可以查看这篇文章 - Hosting a web browser component in a C# winform - 它解释了执行此操作的几种方法。或者直接转到这个 - Hosting a webpage inside a Windows Form - 基本上你需要做的是处理IE的COM WebBrowser中的DOM对象的Click。您可以通过处理C#代码中的Js事件来实现此目的。
我记得必须使用AxSHDocVw.AxWebBrowser COM对象而不是较新版本的.Net Framework中的System.Windows.Forms.WebBrowser类来完成这种自定义。
我可以向您发送更多关于此的数据,我做了一些项目,只是给我时间找到它;)。同时尝试使用这些链接。
按照!