2009-01-29 12 views
1

Nous utilisons le contrôle WebBrowser dans C# winforms et devons pouvoir obtenir des informations sur l'URL sur laquelle le curseur est positionné.Récupère l'identifiant des liens pour la position actuelle du curseur dans le contrôle webrowser

Donc, nous avons une page web en mode design, qui a plusieurs URL, quand le curseur est sur un je voudrais appeler une méthode qui renverrait l'ID du lien.

Merci

+0

Faites-vous référence lorsque la souris est sur un lien, ou lorsque l'utilisateur a sélectionné le texte du lien? – BFree

+0

Lorsque le curseur est sur un lien dans le navigateur Web, que ce soit avec le clavier ou la souris –

Répondre

2

Vous pouvez utiliser le IHTMLCaret pour obtenir la position du curseur à partir de là en utilisant IMarkupPointer vous pouvez obtenir l'élément dans la portée actuelle.

0

Le contrôle WebBrowser possède une propriété de document qui a une collection de liens. Chaque lien est un HTMLElement qui contient des événements auxquels vous pouvez accéder. Encore une fois, je ne suis pas sûr de savoir ce que vous entendez par "curseur" parce que dans le monde du Web, sauf si vous êtes dans une zone de texte, il n'y a pas de "curseur" (ce que je voulais dire dans mon commentaire) vous pouvez puiser dans l'événement MouseOver et d'autres choses comme ça.

Exemple:

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

Cette imprimera l'URL que la souris est terminée.

0

Vous pouvez jeter un oeil à cet article - Hosting a web browser component in a C# winform - qui explique plusieurs façons d'effectuer cela. ou aller directement à celui-ci - Hosting a webpage inside a Windows Form - Fondamentalement, ce que vous devez faire est de gérer le clic de l'objet DOM dans le navigateur Web COM de IE. Vous y parvenez en manipulant les événements Js dans votre code C#.

Je me souviens que ce type de personnalisation doit être fait en utilisant l'objet COM AxSHDocVw.AxWebBrowser au lieu de la classe System.Windows.Forms.WebBrowser des versions plus récentes du .Net Framework.

Je pourrais vous envoyer plus de données à ce sujet, je l'ai fait un projet, donnez-moi juste le temps de le trouver;). En attendant, essayez avec ces liens.

Par!