2009-01-29 45 views
1

我們在c#winforms中使用WebBrowser控件,並且需要能夠獲取有關遊標所在的Url的信息。獲取webrowser控件中當前光標位置的鏈接ID

所以我們有一個網頁在設計模式,它有多個網址,當光標超過一個我想調用一個方法,將返回鏈接的ID。

謝謝

+0

您是指鼠標懸停在鏈接上,還是當用戶選擇鏈接文本? – BFree 2009-01-29 16:38:46

回答

2

您可以使用IHTMLCaret從那裏獲取光標位置,使用IMarkupPointer您可以獲取當前範圍中的元素。

0

webBrowser控件有一個Document屬性,它有一個Links集合。每個鏈接都是一個HTMLElement,其中包含可以點擊的事件。再一次,我不確定你的意思是「光標」,因爲在網絡世界裏,除非你在文本框中,否則實際上沒有「光標」(這是我的意思)。你可以利用MouseOver事件和其他類似的東西。

例子:

foreach (HtmlElement element in this.webBrowser1.Document.Links) 
    { 
     element.MouseOver += (o, ex) => 
     { 
      Console.WriteLine(ex.ToElement.GetAttribute("HREF")); 
     }; 
    } 

這將打印出實際的URL,該鼠標已經結束。

0

你可以看看這篇文章 - Hosting a web browser component in a C# winform - 它解釋了幾種執行該方法的方法。或者直接轉到這個 - Hosting a webpage inside a Windows Form - 基本上你需要做的是處理IE的COM WebBrowser內DOM對象的點擊。通過處理C#代碼中的Js事件來實現這一點。

我記得這種定製必須使用AxSHDocVw.AxWebBrowser COM對象來完成,而不是使用.NET Framework新版本的System.Windows.Forms.WebBrowser類。

我可以給你發送更多這方面的數據,我做了一些項目,只是給我時間來找到它;)。同時嘗試使用這些鏈接。

由!